Visualizzazione risultati 1 fino 8 di 8

Discussione: Sicurezza form

  1. #1
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito Sicurezza form

    Ho un form HTML che chiede nome utente e password e una pagina PHP che effettua il login controllando i dati nel database.
    Quali precauzioni devo prendere per eliminare ogni vulnerabilità dalla mia pagina?

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Non sono un esperto di sicurezza!

    Però, io prendo queste precauzioni:

    -controllo i dati (se sono settati) con la isset()

    -Controllo (eventualmente) il formato dei dati (ad esempio, la validità della email, oppure con la empty() per evantuali dati necessari)

    -faccio l'escape dei dati nella query tramite la mysql_real_escape_string()

    Ciao!
    Ultima modifica di alemoppo : 26-08-2011 alle ore 15.28.10

  3. #3
    Guest

    Predefinito

    Poi, aggiungere htmlspecialchars() in tutti i contenuti e forzare il tipo di contenuto tramite il type juggling.


  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Il casting non viene fatto in automatico? (dai tipi di "dati" sul database)?

    E poi, l'htmlspecialchars() non è meglio farlo dopo? (quando si scrive sulla pagina)? {io uso l'htmlentities()}...

    Ciao!

  5. #5
    Guest

    Predefinito

    Se viene INSERITO, ma le SQL Injection vengono fatte PRIMA dell'inserimento/estrazione a causa del mancato type casting (o juggling, come preferisci), del mancato escape dei caratteri ' e " e le XSS della mancata trasformazione in entità di < e >.


  6. #6
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Una cosa alla volta... :)
    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    -controllo i dati (se sono settati) con la isset()
    Se non controllassi se i dati sono settati cosa potrebbe succedere?

  7. #7
    Guest

    Predefinito

    Dipende da come hai strutturato il Login.

    Può non eseguire il login, potrebbe restituirti errore la Query non essendoci valori da confrontare col campo, potrebbe eseguire il login senza inserire i dati che dovrebbero essere richiesti, etc..


  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Se viene INSERITO, ma le SQL Injection vengono fatte PRIMA dell'inserimento/estrazione a causa del mancato type casting (o juggling, come preferisci), del mancato escape dei caratteri ' e " e le XSS della mancata trasformazione in entità di < e >.

    Scusami, ma vorrei chiarirmi questa cosa:

    Le sql_injection (a me risulta) vengono fatte con gli apici, ma io questo problema lo risolvo con la mysql_real_escape_string() tramite il backslash. Quindi, se un campo mi contene i caratteri come "< > è ...", a me non importa, perché poi li converto con la htmlentities() {eliminando il pericolo di XSS}: prima (e durante) l'inserimento, questi caratteri non son dannosi! Ripeto: gli unici dannosi sono gli apici, con i quali si può modificare la struttura della query (ad esempio, aggiugendo sul controllo della password un bel "OR 1"!), sbaglio?

    Ciao!
    Ultima modifica di alemoppo : 26-08-2011 alle ore 15.16.06

Regole di scrittura

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