Visualizzazione risultati 1 fino 6 di 6

Discussione: mysql_escape_string

  1. #1
    Guest

    Predefinito mysql_escape_string

    Ragazzi ho bisogno proprio di una mano....
    ne è passato di tempo da quando ho tirato sul il mio forum
    e non ho mai avuto un problema....solo da qualche tempo sembro attirar
    l'attenzione di qualcuno che non ha niente da fare e così devo correre ai ripari
    contro l'sql_injection
    Ora premesso che uso i'ipb forum su mysql e che a quanto ho capito devo inserire questa stringa laddove il forum si interfaccia con il database chiedevo....

    qual'è l'esatta sintassi di "mysql_escape_string" ? per favore fatemi un esempio reale senza riportare quelle del manuale che fa esempi a me sconosciuti

    In quali files php devo inserire questa stringa? in tutti.....solo in alcuni e se si quali?

    Scusate l'iNioranza ma sono proprio arruginito

  2. #2
    Guest

    Predefinito

    Non conosco bene tale forum, ma dovresti prendere il file che contiene la funzione mysql_query (guarda nei file inclusi, che contengano la parola function o mysql o database, ecc.).
    La funzione di cui parli, praticamente, si applica a qualunque stringa passata come argomento nelle query (mysql_query()).

    Esempio:

    mysql_query("SELECT * FROM tabella WHERE nome='".mysql_escape_string($stringa)."');

    dove $stringa è una variabile in genere proveniente da un form (login, ricerca, registrazione, ecc.) che, come vedi è passata alla query sql.

    Se hai ancora dubbi, chiedi pure.


    Ciaoooo!!!!!

  3. #3
    Guest

    Predefinito

    Innanzitutto grazie per la super rapida risposta
    in pratica cerco in tutti i file php la voce mysql_query e aggiungo prima della stringa mysql_escape_string ?

    Nel tuo esempio

    mysql_query("SELECT * FROM tabella WHERE nome='".mysql_escape_string($stringa)."');

    se la stringa è $login io scriverò:

    mysql_query("SELECT * FROM tabella WHERE nome='".mysql_escape_string($login)."'); ?

    scusa se faccio questi esempi bislacchi ma ho bisogno di un esempio concreto per non compiere sciocchezze

    ps c'è un modo rapido per vedere quali sono tutte le mysql_query?




    esempio nell'index.php ho trovato questo:

    $DB->query("SELECT t.*, f.topic_mm_id, f.name as forum_name, f.quick_reply, f.id as forum_id, f.read_perms, f.reply_perms, f.parent_id, f.use_html,
    f.start_perms, f.allow_poll, f.password, f.posts as forum_posts, f.topics as forum_topics, f.upload_perms,
    f.show_rules, f.rules_text, f.rules_title,
    c.name as cat_name, c.id as cat_id
    FROM ibf_topics t, ibf_forums f , ibf_categories c
    WHERE t.tid=".$ibforums->input['t']." and f.id = t.forum_id and f.category=c.id");

    lo dovrei modificare alla fine in:

    WHERE t.id='".mysql_escape_string($ibforums->input['t']." and f.id = t.forum_id and f.category=c.id"); ?
    Ultima modifica di aggressor : 13-01-2007 alle ore 01.40.17

  4. #4
    Guest

    Predefinito

    Hai capito tutto.
    Attento però, hai commesso un errore (refuso?):

    WHERE t.id=".mysql_escape_string($ibforums->input['t']." and f.id = t.forum_id and f.category=c.id");

    (avevi messo un ' in più all'inizio)

    Il mio unico dubbio è se possono nascere problemi con il trattamento delle stringhe usando la funzione mysql_escape_string e le funzioni già presenti.

    Fai qualche prova.


    Ciaooo!!!

  5. #5
    Guest

    Predefinito

    Grazie di tutto

    Ora farò qualche prova e poi attacco

    Ps devo aprire tutti i file php alla ricerca del sql query o c'è un sistema + rapido?


    EDIT: Scusa debug ma ho copiato ed incollato la sintassi da te corretta ma mi dice:

    Parse error: syntax error, unexpected ';' in /forum/index.php on line 184

    (la linea della query) ndo sbaglio?
    Ultima modifica di funcool : 13-01-2007 alle ore 12.59.08

  6. #6
    Guest

    Predefinito

    OPS, non me ne ero accorto:

    =".mysql_escape_string($ibforums->input['t'])."

    PS: non fare due post consecutivi, usa il tasto edita.


    Ciaoo!!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •