Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Sicurezza degli script

  1. #1

    Sicurezza degli script

    Ciao a tutti, visto il numero di utenti che vivono su questo forum mi permetto di fare una domanda su un argomento che può sembrare scontato ma a cui, troppo spesso, non si dà la dovuta attenzione.

    Partendo dal presupposto che è quasi "impossibile" scrivere codici COMPLETAMENTE SICURI, quali sono gli accorgimenti da prendere per evitare code-injection, SQL-injection e tutti gli altri exploit (o comunque errori generati volutamente da qualcuno)?

    Provo a dare il "LA" e vedere quante altre cose saltano fuori, visto che l'argomento sicurezza è sempre stato una cosa ampia e delicata:

    Problema: Ricevo dati da un form, non è necessario (anzi, nel mio caso è superfluo) che vi siano porzioni di codice HTML o, peggio, PHP.
    Soluzione: Utilizzo una funzione tipo strip_tags() che elimina tutto il codice HTML/PHP.

    Lascio a voi il testimone, anche perchè ho mooooolto da imparare.

    Solo un piccolo accorgimento: sto parlando di sicurezza a livello di codice, non di errori/dimenticanze/bug nelle funzioni insite dell'ambiente PHP.
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  2. #2
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697

    Re: Sicurezza degli script

    Originariamente inviato da iraiscoming223
    Ciao a tutti, visto il numero di utenti che vivono su questo forum mi permetto di fare una domanda su un argomento che può sembrare scontato ma a cui, troppo spesso, non si dà la dovuta attenzione.

    Partendo dal presupposto che è quasi "impossibile" scrivere codici COMPLETAMENTE SICURI, quali sono gli accorgimenti da prendere per evitare code-injection, SQL-injection e tutti gli altri exploit (o comunque errori generati volutamente da qualcuno)?

    Provo a dare il "LA" e vedere quante altre cose saltano fuori, visto che l'argomento sicurezza è sempre stato una cosa ampia e delicata:

    Problema: Ricevo dati da un form, non è necessario (anzi, nel mio caso è superfluo) che vi siano porzioni di codice HTML o, peggio, PHP.
    Soluzione: Utilizzo una funzione tipo strip_tags() che elimina tutto il codice HTML/PHP.

    Lascio a voi il testimone, anche perchè ho mooooolto da imparare.

    Solo un piccolo accorgimento: sto parlando di sicurezza a livello di codice, non di errori/dimenticanze/bug nelle funzioni insite dell'ambiente PHP.
    Si...//strip_tags = Elimina tutto il codice contenuto fra i tag < e >, tag compresi

    questa è una protezione, poi man mano che ti entrano e ti manomettono il form (come hanno fatto a me) metti la soluzione adeguata

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

    Re: Sicurezza degli script

    Originariamente inviato da iraiscoming223
    Lascio a voi il testimone, anche perchè ho mooooolto da imparare.
    Idem come sopra.
    ciao. hai già letto la pillola di mark2x?
    http://forum.html.it/forum/showthrea...hreadid=951844

  4. #4
    gli ho dato una guardatina veloce, ed è fatta mooolto bene.
    Tuttavia quelli sono i problemi più ... evidenti (?) e che si presentano più spesso...

    Ma quali altri accorgimenti bisogna prendere per aumentare la sicurezza?
    Accorgimenti meno conosciuti o più infidi... (scusate la mia capacità espressiva, ma sono parecchio stanco ^^ se domani non vedrò risposte - o ci saranno solo insulti - riformulerò meglio questo post )
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  5. #5
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    Usa sprintf() per creare le query da inviare mettendo %d per tutti i parametri numerici.

    Se ti aspetti un parametro numerico dagli una passata ad intval(): se è già un numero non cambia niente, se non lo è viene ridotto ad uno zero.

    Usa mysql_real_escape_string() per tutte le stringhe che puoi inserire in un database.

    Se ti aspetti un valore tra MIN e MAX dagli una passata a min(max(valore, MIN), MAX).

  6. #6
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697
    Originariamente inviato da iraiscoming223
    gli ho dato una guardatina veloce, ed è fatta mooolto bene.
    Tuttavia quelli sono i problemi più ... evidenti (?) e che si presentano più spesso...

    Ma quali altri accorgimenti bisogna prendere per aumentare la sicurezza?
    Accorgimenti meno conosciuti o più infidi... (scusate la mia capacità espressiva, ma sono parecchio stanco ^^ se domani non vedrò risposte - o ci saranno solo insulti - riformulerò meglio questo post )
    Io ti consiglierei di vedere "gli scherzi che ti fanno" e poi mettere l'adeguata protezione.
    Una cosa che metterei subito è captca, questo evita l'inserimento automatico di spam e pubblicità indesiderata.

  7. #7
    bene bene grazie a tutti per i consigli. Non ho ancora ricevuto scherzi (forse perchè non ho ancora aperto il sito, chissà... O.ò) ma volevo documentarmi (e documentare, visto che penso sia utile a tutti) le varie tipologie di "attacco" a script php e db mysql...
    Se questo 3d va avanti così scriveremo una nuova guida alla sicurezza in php... (eheheh scherzo, però è indubbiamente utile)
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    Originariamente inviato da chris

    Usa mysql_real_escape_string() per tutte le stringhe che puoi inserire in un database.
    ma solo per le insert o anche per tutte le altre operazioni?

  9. #9
    riesumo questa mia discussione perchè mi è saltata la pulce all'orecchio riguardo un aspetto non trascurabile in fatto di sicurezza: i file e i campi moduli di upload.
    Io personalmente nel mio sito ho un form per l'invio e l'inserimento di immagini da parte degli utenti. Essendo una cosa "fatta in casa" il controllo che viene eseguito si limita alla sola estensione dei files.
    Se la stringa che contiene il nome del file non finisce in .gif, .jpeg/.jpg, .png allora crea un messaggio di errore (e cancella il file dal server). Se invece il file viene reputato valido procede alla creazione di miniature.
    La mia domanda è: e se qualcuno carica un file php cambiandogli l'estensione? Diventa "prova.jpg" e la prima volta che provo ad eseguirlo dovrebbe caricarmi il file php al posto dell'immagine.
    Il mio hosting è su piattaforma linux, e x quanto lo utilizzi da poco anche a casa so che non bada troppo alle estensioni ma si affida agli header dei files. Questa caratteristica potrebbe ritorcersimi contro? Oppure il modulo di Apache utilizza le estensioni e carica solo quelle?

    E poi un'altra curiosità: è possibile tramite qualche programma tipo webcopy che qualcuno riesca a scaricare dal mio server script php as-is senza che il server li interpreti?

    Grazie a tutti e scusate la longevità di questo post
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  10. #10
    Utente di HTML.it L'avatar di rookie
    Registrato dal
    Sep 2000
    Messaggi
    89
    questa discussione comincia -per me- ad essere arabo...
    comunque allego un messaggio mandato dal mio provider. c'e' qualcuno
    che sappia spiegarmi qualcosa riguardo l'istruzione " mail() " ?

    " A causa dei soliti script bucati e mal programmati, ci sono malintenzionati che riescono
    " a mettere in coda di spedizione "milioni" di mail di spam. Proprio ieri c'e' stato un caso del
    " genere e ci siamo trovati con 2.000.000 di mail in uscita da uno dei nostri server. Stiamo
    " pensando seriamente di togliere o limitare pesantemente l'istruzione mail() del PHP. Ti
    " incoraggiamo ad aggiornare e a blindare tutti i tuoi script che inviano mail, perche' non
    " vorremmo arrivare al punto di limitare questa "feature"."

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 © 2025 vBulletin Solutions, Inc. All rights reserved.