• Super User

    codice maligno in form

    Ciao a tutti,
    non so se questa è la sezione giusta per postare il mio problema in caso spostatemi.

    allora io ho fatto un piccolo guestbook a un mio cliente, l'altro giorno mi chiama dicendomi che nella pagina c'era una immagine strana, vado a vedere e scopro che la pagina è stata hackerata da uno che si fa chiamare M_lamer ( il nome e tutto un programma ), io ho pensato avesse bucato il sito oppure eseguito codice maligno dato che era una pagian inclusa con una query string del tipo

    guestbook.php?pagina=leggi

    ho provato e riprovato ma nulla, appariva sempre poi ho cancellato dal db alcni post un po strani tra cui uno di un inglese che diceva nice site, e è scomparso anche il defacement e e ritornata la pagina normale.

    Ora quello che ho potuto dedurre e che e stato eseguito codice attraverso il campo testo contenuto nel form, per evitare che l'amico o qualcun altro ritorni, vorrei impostare il form di inserimento del messaggio in modo da non accettare codice html o altro, ma solo in formato testo.
    Per questo ho postato qui perche penso sia un problema di scripting lato client, in pratica il form deve inviare al database solo del testo, non codice.

    spero di essere stato chiaro.
    🙂

    Grazie


  • User Attivo

    Ciao kaisersose, uno dei metodi per evitare che gli utenti inseriscano codice maligno digitantdo nel campo di testo, è assicurarsi che il database interpreti la stringa correttamente. Provo a fare un esempio, lo script riceve il testo dal form tipo:
    bla bla bla, nice site ' codice maligno php ' bye bye
    Ora quando lo script passa la stringa, vengono usati gli apostrofi per dire al interprete php dove è che inizia la stringa di testo e dove finisce e inizia il codice.
    Quindi l'utente malignamente inserisce degli apostrofi e poi del codice, e riesce a far eseguire il suo codice.
    Ci sono varie funzioni php per controllare, tipo addslashes() (e stripslashes credo per quando lo stampi) che aggiunge degli slash di fronte ai caratteri che non devono essere interpretati come codice ma come testo.
    Spero di averti dato la giusta dritta, sicuramente trovi info dettagliate su php.net e se cerchi le funzioni che ti ho nominato.