Back to top

Autore Topic: api per il database  (Letto 8256 volte)

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
api per il database
« il: 03 Mar 2011, 11:02:32 »
Ciao a tutti! io conosco il php e l'sql ma non molto le api di joomla.. sapete dirmi come eseguire con le api i comandi sql per inserire eliminare aggiornare e selezionare dei campi sul database?

e seconda cosa, se io eseguo una query con le api di joomla poi ci pensano le api alla sicurezza o no?
e ultima cosa... se uso le api che mi consiglierete o uso chronoform e chronoconnectivity la sicurezza sarà la stessa? perchè ogni tanto credo sarà indispensabile usare questi componenti e api assieme :)

grazie :)
Iacopo Guarneri

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #1 il: 03 Mar 2011, 11:46:58 »
ho trovato qualcosa... per esempio per stampare il campo pri_foto della tabella jos_chronoforms_pri_foto solo dove cf_user_id vale 63 scrivo il codice sotto... ma con lo stesso metodo posso scrivere anche delle insert into, update e delete? e la sicurezza è come quella offerta da chronoform? grazie :)
Codice: [Seleziona]
$db =& JFactory::getDBO();
$query = "
  SELECT ".$db->nameQuote('pri_foto')."
    FROM ".$db->nameQuote('#__chronoforms_pri_foto')."
    WHERE ".$db->nameQuote('cf_user_id')." = ".$db->quote(63).";
  ";
$db->setQuery($query);
$result = $db->loadResult();
Iacopo Guarneri

Offline ariess

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4056
  • Sesso: Maschio
    • Mostra profilo
Re:api per il database
« Risposta #2 il: 03 Mar 2011, 14:29:35 »
ciao iacoposk8,

conosci questo sito ?
http://api.joomla.org/li_Joomla-Framework.html

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #3 il: 03 Mar 2011, 14:33:49 »
no... se apro il link mi dice come errore: Not Acceptable
però oltre alle api che (correggetemi se sbaglio) mi sembra di aver trovato mi servirebbe sapere se ho la stessa sicurezza offerta da chronoform o se c'è da aggiungere dell'altro e se con lo stesso metodo posso fare oltre che la SELECT anche INSERT INTO, UPDATE e DELETE
Iacopo Guarneri

mau_develop

  • Visitatore
Re:api per il database
« Risposta #4 il: 03 Mar 2011, 14:44:08 »
http://docs.joomla.org/How_to_use_the_database_classes_in_your_script

quella che tu chiami "sicurezza" che in realtà si chiama semplicemente scrivere correttamente del codice, ci devi e dovrai sempre pensare tu.

M.

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #5 il: 03 Mar 2011, 15:18:12 »
io infatti il codice che ho scritto prima l'ho preso da li! :)
ma quindi usando le api non si ha sicurezza se ci devo pensare io?
ma allora che vantaggi ha usare le api, solo la velocità dello scrivere il codice?
grazie per avermi risposto:)
Iacopo Guarneri

mau_develop

  • Visitatore
Re:api per il database
« Risposta #6 il: 03 Mar 2011, 15:54:16 »
mmmhh mi sa che hai qualche lacuna, comunque si, uno dei vantaggi delle api è anche risparmiare di scrivere codice

M.

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #7 il: 03 Mar 2011, 16:13:48 »
che lacuna? a me interessava sapere se con il codice per leggere da un database postato in precedenza ho sicurezza o c'è da aggiungerci dell'altro?
Iacopo Guarneri

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #8 il: 07 Mar 2011, 09:07:47 »
aiutatemi vi prego!  :'(
Iacopo Guarneri

mau_develop

  • Visitatore
Re:api per il database
« Risposta #9 il: 07 Mar 2011, 10:09:07 »
scusa ma ragiona un'attimino visto che dici di conoscere sia php che sql,... quì joomla non centra nulla..

se io faccio una query all'interno del mio script e gli dico "leggi dalla tabella BIMBI ed estrai le righe dove i bimbi hanno il maglione rosso.
Non esiste possibilità di manipolare la query.

se la query è dinamica, ovvero prendi dati dall'uri o dal post o da dove vuoi tu, allora diventa:
"leggi dalla tabella BIMBI ed estrai le righe dove i bimbi hanno il maglione $colore

Il colore diventa arbitrario ... ma lo dovrà essere secondo precisi criteri... ovvero dovrai controllare tutto ciò che passa per vedere se è un colore o una stringa di iniezione.

...non ci sarà mai nessuno che lo farà per conto tuo.

M:


Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #10 il: 07 Mar 2011, 10:30:10 »
questo per quanto riguarda l'sql injection, però io non ho idea di quanti modi ci sono per "bucare" un sito, non mi son mai interessato a queste cose...
io nell'esempio ho fatto una query statica, ma se l'avessi fatta dinamica sarei sicuro con quelle API o ne servono altre o bisogna aggiungere delle modifiche?
sarei sicuro con quel codice? se fosse dinamico? per esempio:

Codice: [Seleziona]
$id=$_GET['id'];
$db =& JFactory::getDBO();
$query = "
  SELECT ".$db->nameQuote('pri_foto')."
    FROM ".$db->nameQuote('#__chronoforms_pri_foto')."
    WHERE ".$db->nameQuote('cf_user_id')." = ".$db->quote($id).";
  ";
$db->setQuery($query);
$result = $db->loadResult();
Iacopo Guarneri

mau_develop

  • Visitatore
Re:api per il database
« Risposta #11 il: 07 Mar 2011, 11:27:28 »
ma se l'avessi fatta dinamica sarei sicuro con quelle API o ne servono altre o bisogna aggiungere delle modifiche?
-----------------------------------------------------------------------------------------------

bah... probabilmente non riesco a farmi capire... è una pagina che ti dico sempre e solo la stessa cosa:

api, farfalle e bacarozzi alla sicurezza ci devi pensare sempre e solo tu

M.

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #12 il: 07 Mar 2011, 11:45:00 »
quindi perchè dovrei usare le API di joomla? se uso le API del php è la stessa cosa se comunque devo pensare a tutto io.. no?
Iacopo Guarneri

mau_develop

  • Visitatore
Re:api per il database
« Risposta #13 il: 07 Mar 2011, 12:41:46 »
scusa mi diresti quali sono le api per php?

M.

Da wikipedia:
Le Application Programming Interface API (Interfaccia di Programmazione di un'Applicazione), sono ogni insieme di procedure disponibili al programmatore, di solito raggruppate a formare un set di strumenti specifici per un determinato compito. È un metodo per ottenere un'astrazione, di solito tra l'hardware e il programmatore, o tra software a basso ed alto livello. Le API permettono di evitare ai programmatori di scrivere tutte le funzioni dal nulla.Le API stesse sono un'astrazione: il software che fornisce una certa API è detto implementazione dell'API.
« Ultima modifica: 07 Mar 2011, 12:46:23 da mau_develop »

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #14 il: 07 Mar 2011, 14:25:08 »
mysql_query, mysql_fetch_array, mysql_num_rows ....
Iacopo Guarneri

mau_develop

  • Visitatore
Re:api per il database
« Risposta #15 il: 07 Mar 2011, 15:04:23 »
 ... sono normalissime funzioni mysql che anche usando le api di joomla useresti, non direttamente, infatti se leggi quello che ti ho estrapolato da wikipedia:

Le API permettono di evitare ai programmatori di scrivere tutte le funzioni dal nulla

invece di fare la connect, select db, query, array dei risultati, chiusura della connessione dopo la chiamata, (e tante altre semplificazioni) istanzi il db e ne usi i metodi e le proprietà disponibili... però se non conosci l'oop è difficile che ne afferri l'utilità e la maggior pulizia di codice nell'implementazione, se per te il singleton equivale al charleston ... direi che stai + o -  a php 3 quando ormai siamo al 6

M.

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #16 il: 07 Mar 2011, 15:58:36 »
la programmazione ad oggetti la conosco.. ma ultima cosa: nameQuote a cosa serve?
Iacopo Guarneri

mau_develop

  • Visitatore
Re:api per il database
« Risposta #17 il: 07 Mar 2011, 16:11:43 »
« Ultima modifica: 07 Mar 2011, 16:17:04 da mau_develop »

Offline iacoposk8

  • Appassionato
  • ***
  • Post: 529
    • Mostra profilo
Re:api per il database
« Risposta #18 il: 07 Mar 2011, 16:41:59 »
ma con il mysql_real_escape_string sarei protetto? perchè io non so tutti i metodi di violazione di un sito

Codice: [Seleziona]
$id=mysql_real_escape_string($_GET['id']);
$db =& JFactory::getDBO();
$query = "
  SELECT ".$db->nameQuote('pri_foto')."
    FROM ".$db->nameQuote('#__chronoforms_pri_foto')."
    WHERE ".$db->nameQuote('cf_user_id')." = ".$db->quote($id).";
  ";
$db->setQuery($query);
$result = $db->loadResult();
Iacopo Guarneri

mau_develop

  • Visitatore
Re:api per il database
« Risposta #19 il: 07 Mar 2011, 17:04:30 »
perchè io non so tutti i metodi di violazione di un sito
---------------------------------------------------------------------------
non esistono metodi di violazione di un sito. Esiste l'abusare delle cose scritte malamente da qualcuno.

Conoscendo php e mysql sei in grado di sapere cosa passa da un mysql_real_escape_string

...il meccanismo te l'ho già spiegato sopra.

scusa ma interrompo quì ..non credo di riuscire ad esserti utile più di così ;)

M.

 



Web Design Bolzano Kreatif