Pagina 2 di 6 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 51

Discussione: Sql Inejction

  1. #11
    basta gestire correttamente gli apici e i doppi apici

  2. #12
    [supersaibal]Originariamente inviato da skidx
    basta gestire correttamente gli apici e i doppi apici [/supersaibal]
    basta usare mysql_escape_string o mysql_real_escape_string ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #13
    io i dati provenienti da form li tratto così

    Codice PHP:
    $text stripslashes($text);
    $text mysql_escape_string($text
    basterà? ho visto che c'è anche una htmlspecialchars o qualcosa di simile ma non ho capito bene cosa fa
    Sotto la panza la mazza avanza.

  4. #14
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    [supersaibal]Originariamente inviato da Caleb
    io i dati provenienti da form li tratto così

    Codice PHP:
    $text stripslashes($text);
    $text mysql_escape_string($text
    basterà? ho visto che c'è anche una htmlspecialchars o qualcosa di simile ma non ho capito bene cosa fa [/supersaibal]
    stripslashes() usalo soltanto se hai magic_quotes_gpc attivo nel php.ini (di default è attivo)
    ed utilizza mysql_real_escape_string() quando questa è disponibile (dalla versione 4.3 in poi).

    attenzione che queste funzioni non gestiscono comunque i caratteri % e _ che hanno un senso nelle query con la clausula LIKE

    htmlspecialchars e htmlentities entrano in gioco quando devi produrre un output che può contenere caratteri html e non li vuoi spedire come tali.
    ad esempio se in questo forum scrivo "bold", non vedrai una scritta in grassetto, ma vedrai i tag per esteso, in quanto < diventa & lt; e cosi via
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  5. #15
    io fin'ora non avevo nessuno protezione del genere

    eppure ho provato ad inserire

    Nick' OR 1=1 --

    nel campo del login e ho provato in svariati modi ma non c'èra nessun risultato, sembrava riuscisse a proteggersi tranquillamente.

    Cmq ora ho inserito le funzioni di sicurezza lo stesso!
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  6. #16
    Se vuoi divertirti sul tuo db prova su mysql.user:
    codice:
    SELECT * 
    FROM `user` 
    WHERE user = 'gnugnu'
    AND PASSWORD = 'inculo' or 1 = 1
    
    ora pensa ad un form non protetto o con register_globals ON....
    
    input type=text user -> gnugnu
    input type=password ->  ' OR 1 = 1 --
    
    diventera':
    
    SELECT * 
    FROM `user` 
    WHERE user = 'gnugnu '
    AND PASSWORD = '' or 1 = 1 -- '
    dove la parte ingrandita e' quella del form e le virgolette che racchiudono sono messe da te.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #17
    piero ho provato con uno script dove ho un form di login:

    se gli metto ' OR 1 = 1 -- nel campo password e qualsiasi cosa come user mi dice semplicemente password errata perchè faccio attraversare la password a md5 prima di fare la select

    invece mi va in errore di sintassi per la query se metto ' OR 1 = 1 -- come user, andrebbe anche bene ma vorrei visualizzare una cosa del tipo "utente non valido" o qualcosa di simile... che tipo di controllo devo fare sul campo utente? obbligo gli utenti a non registrarsi con nomi con apici eliminandoli dalla $password? (se sì con che funzione?)

    Codice PHP:
    $user = isset($_POST['user']) ? $_POST['user'] : '';
    $password = isset ($_POST['password']) ? $_POST['password'] : '';
    $password_md5 = isset ($password) ? md5($password) : '';

    // codice form

    $q_login mysql_query(" SELECT * FROM users WHERE user='$user' AND password='$password_md5' ") or die ("Query non valida: " mysql_error()); 
    Sotto la panza la mazza avanza.

  8. #18
    se vuoi fare in modo che l'utente possa usare gli apici nel form, allora prima della query devi passare le variabili a mysql_escape_string (o meglio ancora real_escape), come detto prima.
    Sennò se vuoi impedire quei caratteri fai un classico controllo al form prima di qualsiasi query.

  9. #19
    ok funziona

    ho guardato sul manuale e non riesco a capire cosa aggiunge mysql_real_escape_string.. che cos'è quel facoltativo identificativo di connessione di cui parla?
    Sotto la panza la mazza avanza.

  10. #20
    [supersaibal]Originariamente inviato da Caleb
    ho guardato sul manuale e non riesco a capire cosa aggiunge mysql_real_escape_string.. che cos'è quel facoltativo identificativo di connessione di cui parla? [/supersaibal]
    Dovrebbe essere la connessione al database, quella stabilita con mysql_connect. In quel modo sei sicuro che usi il set di caratteri corretto (che nelle tue pagine potrebbe essere diverso).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.