Visualizzazione risultati 1 fino 6 di 6

Discussione: Evitare injection

  1. #1
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Exclamation Evitare injection

    Ciao a tutti, un po' di tempo fa ho letto un articolo che diceva che gli slash si mettono automaticamente con $_GET e $_POST.
    Quindi se io stampo direttamente ciò che ottengo non dovrei avere problemi, giusto?
    Inoltre vorrei sapere come evitare SQL_injection: basta aggiungere mysql_real_escape_string()? Allora come fanno gli hacker ad accedere ai siti della NASA, FBI o altri?
    Grazie.

  2. #2
    Guest

    Predefinito

    Con mysql_real_escape_string() e htmlespecialchars().

    Poi non si può entrare in un sito solo con le SQL Injection, ma con tanti altri metodi che non dipendono dal DB.


  3. #3
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Predefinito

    Tipo che altri metodi..?

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,292

    Predefinito

    Prima di tutto "gli slash con $_GET e $_POST" sono lontani parenti dei controlli sull'input. Si chiamano magic quotes, sono deprecate da php 5.3.0, disattivate in php5 su AlterVista, e spariranno del tutto in php6. Erano utili solo per evitare che delle virgolette, singole o doppie, finissero per rovinare le pagine di chi era alle prime armi con il php.

    htmlspecialchars() va usato per tutto quello che da php visualizzi nella pagina, quando potrebbe contenere caratteri speciali in html ( i.e., < > " & ' ). Codificandoli, eviti che nelle tue pagine finiscano tag non previsti, o magari pezzi di javascript che spediscono dati personali in giro.

    mysql_real_escape_string() va usato per tutto quello che metti nel database. E' l'equivalente di htmlspecialchars, ma codifica i caratteri che hanno un significato speciale in MYSQL. Questo evita SQL injection ed altre brutte cose che vanno a toccare il DB.

    Riassumendo: mysql_real_escape_string in entrata (dalla pagina verso il db) e htmlspecialchars in uscita (dal php verso la pagina).

    Questo è il minimo della sicurezza. Il resto sono controlli a tappeto su tutto quello che ti arriva dagli utenti: numeri, parole, nomi di file, valori dei parametri GET e POST, lunghezze delle stringhe.

    In più, un minimo di precauzioni quando ci sono funzioni che lavorano sui file: non includere file, cancellare, copiare, o scrivere in file il cui nome ti arriva da un parametro GET o POST —o almeno assicurarsi che non contenga pezzi di nomi di directory truffaldini (e.g. "../") che qualcuno potrebbe usare per fare ciò che non dovrebbe essere fatto.

    Allora come fanno gli hacker ad accedere ai siti della NASA, FBI o altri?
    Spesso, troppo spesso, la password è 12345

  5. #5
    Guest

    Predefinito

    Precisamente non spiegarti perché non mi sono mai informato più di tanto sull'Hacking per evitare di appassionarmi a qualcosa che mi avrebbe solo rovinato, ma l'RFI (Remote File Injection) è un metodo abbastanza famoso ed utilizzato per esempio.

    Non ne sono a conoscenza di tutti perché li lessi, ma non li studiai mai.

    Poi c'è il social engineering che non è direttamente una tecnica pratica.

    Se sei interessato sul come proteggerti, dai un'occhiata qui: How They Hack Your Website: Overview of Common Techniques.


  6. #6
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Predefinito

    Perfetto proprio la risposta che volevo grazie bicheddu:)

Regole di scrittura

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