ALP - Aquileia Linux Project

Gruppo Utenti GNU/Linux – Free Software Bassa Friulana
Oggi è 24/06/2017, 0:04

Tutti gli orari sono UTC




Apri un nuovo argomento Rispondi all’argomento  [ 15 messaggi ]  Vai alla pagina 1, 2  Prossimo
Autore Messaggio
MessaggioInviato: 25/09/2007, 8:58 
Non connesso
Site Admin
Site Admin
Avatar utente

Iscritto il: 18/08/2004, 19:41
Messaggi: 1237
Località: Aquileia
Mi è scattato questo pallino da alcuni giorni.
Premetto che sono alle prime armi col PHP e mi ci vuole ancora il manuale sotto mano per scrivere codice ed è per questo che sono arrivato al punto di chiedermi:

Situazione:
- ho creato il mio modulo contatti su una paginetta del mio sito;
- il form si interfaccia con un db su MySQL;
- tutti i cmapi compilati manderanno i dati al database;
Esempio campi: nome, cognome, mail, sito web

Problema:
Qualcuno potrebbe inserire codice arbitrario nei campi per inserire qualcosa che potrebbe danneggiare e rendere instabile il server, il database stesso... come fare per rendere sicuro il form e di conseguenza mettere in sicurezza l' archivio dati e il server?

Mia proposta:
Verificare quali campi ci sono nel form e che dati raccolgono:
Nome: deve contenere solo lettere
Cognome: deve contenere solo lettere
Email: deve essere in forma qualcosa[chiocciola]dominio.estensione
Sito web: deve essere dato in forma http://qualcosa.dominio.estensione (con questo form si accettano solo domini id secondo/terzo livello e non URL a sotto pagine)

Una volta che ho capito la forma con cui devo fornire i dati per i singoli campi, quindi restringendo il range e filtrarli, posso anche procedere per mettere le condizioni una ad una.
IF:
1) se Nome e Cognome sono ugauali solo a lettere = ok passa alla condizione successiva se no stoppati;
2) se sul campo Mail trovi la forma su detta continua con la condizione successiva se no stoppati;
3) se sul campo Sito web trovi la sintassi come sopra indicato ultima l' inserimento dei dati forniti nel db 4) se no stoppati e dai l' errore all' utente di verificare che dati ha fornito;

Vengo al dunque finalmente:
qualcuno mi da delucidazioni su come codare in php le condizioni che ho indicato un attimo fa magari per punti 1,2,3,4? :)

_________________
Davide Tommasin
BLOG di uno qualsiasi
ALP - Aquileia Linux Project
CKF - Canoa Kayak Friuli
Immagine Immagine


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 25/09/2007, 12:38 
Non connesso
pinguino_imperatore
pinguino_imperatore
Avatar utente

Iscritto il: 25/10/2006, 10:15
Messaggi: 352
Ciao King forse non ho ben afferrato il tuo problema ma non ti basta usare la funzione htmlspecialchar
così anche un pinco qualunque se accidentalmente inserisce del codice html non crea danni....

_________________
Le cose migliori della vita sono gratis!
Seminate Linux che Windows si pianta da se!


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 25/09/2007, 13:36 
Non connesso
Site Admin
Site Admin
Avatar utente

Iscritto il: 18/08/2004, 19:41
Messaggi: 1237
Località: Aquileia
Quella funzione a quanto ho capito converte i caratteri speciali.
Il problema che ho esposto io è diverso ovvero faccio un esempio:

mettiamo cont che un utente smaliziato possa inserire nel campo Mail codice arbitrario ovvero al posto di una stringa che ha come sintassi qualchecosa@qualchecosa.qualchecosa_max_3_caratteri può inserire una stringa nulla o peggio ancora una stringa con codice malevolo, un qualche dato che possa venire accodato tramite un array e far partire un comando specifico.

La semplice conversione con la funzione di cui accennavi non darà esito positivo per la messa in sicurezza imho.

Io vedo meglio una condizione per il campo Mail che dica:

se e solo se la stringa passata ha la sintassi bla_bla(chiocciola)bla(punto)qualchecosa_max_3_caratteri allora i dati verranno inseriti se no dai un avviso di errore e stoppa l' insrimento nel db.

Così anche se la mail non è verificata e non si sa se sia esistente, ma almeno sappiamo che l' utente X non può passare una stringa differente (per es nulla, con punteggiatura strana, ...)

Stesso discorso imho vale pure per gli altri campi.
Trovare una sistassi, uno standard con cui permettere di inserire i dati e poi verificarli con condizioni campo per campo.

Ribadisco la mia domand: praticamente che funzioni php dovrei utilizzare per inserire tali condizioni sui vari campi?

_________________
Davide Tommasin
BLOG di uno qualsiasi
ALP - Aquileia Linux Project
CKF - Canoa Kayak Friuli
Immagine Immagine


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 25/09/2007, 13:38 
Non connesso
Site Admin
Site Admin
Avatar utente

Iscritto il: 18/08/2004, 19:41
Messaggi: 1237
Località: Aquileia
Aggiungo a parte che secondo me, oltre alla buona identazione del codice, la pulizia dello stesso dobbiamo focalizzare anche la programmazione sul fatto sicurezza sia per l'esempio che ho fatto ma anche in generale e quindi dovrebbe essere un qualcosa di scontato pensarci.

_________________
Davide Tommasin
BLOG di uno qualsiasi
ALP - Aquileia Linux Project
CKF - Canoa Kayak Friuli
Immagine Immagine


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 26/09/2007, 12:46 
Non connesso
pinguino_semplice
pinguino_semplice

Iscritto il: 19/01/2007, 8:42
Messaggi: 44
quello che ti serve è una giuda alla prevenzione delle SQL INJECTION
su html.it ce nè almeno una.

anche perchè la come fermi una roba di questo tipo così?
Codice:
"1';delete from tebella_CMS where 1=1--mm@ciao.boh"


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 27/09/2007, 11:58 
Non connesso
Site Admin
Site Admin
Avatar utente

Iscritto il: 18/08/2004, 19:41
Messaggi: 1237
Località: Aquileia
Mmmm già.

A proposito del tuo suggerimento ho trovato questa guida su HTML.it
http://php.html.it/articoli/leggi/896/p ... injection/

Davvero interessante ;)

_________________
Davide Tommasin
BLOG di uno qualsiasi
ALP - Aquileia Linux Project
CKF - Canoa Kayak Friuli
Immagine Immagine


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 27/09/2007, 14:22 
Non connesso
pinguino_semplice
pinguino_semplice

Iscritto il: 19/01/2007, 8:42
Messaggi: 44
si l'avevo trovata anche io, interessante ..
in rete in sembra che si trova molta roba sull'argomento.


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 27/09/2007, 15:36 
Non connesso
new_entry
new_entry

Iscritto il: 27/09/2007, 15:14
Messaggi: 8
Ciao a tutti,
mi sono appena registrato e ho visto il post sulla sicurezza. Beh io non sono un programmatore professionista ma il mio avviso è di dare un'occhiata al sito dell'OWASP(Open Web Application Security Project ) dove si possono trarre utili suggerimenti per la sicurezza in ambiente web.

@KH: Ti giro via mp un doc sull'Open Web Application Security Project perchè non so come fare a caricarlo nel forum.

Ciao

JF


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 27/09/2007, 16:30 
Non connesso
Site Admin
Site Admin
Avatar utente

Iscritto il: 18/08/2004, 19:41
Messaggi: 1237
Località: Aquileia
Oi jumpingfrog!!! Chi si rivede :mrgreen:

Grazie per la segnalazione. Per dovere di cornaca aggiungo pure il link al sito che hai segnalato:
http://www.owasp.org/index.php/Main_Page

_________________
Davide Tommasin
BLOG di uno qualsiasi
ALP - Aquileia Linux Project
CKF - Canoa Kayak Friuli
Immagine Immagine


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 28/09/2007, 8:14 
Non connesso
new_entry
new_entry

Iscritto il: 27/09/2007, 15:14
Messaggi: 8
Spero che possa essere utile per voi programmatori. Vi posto anche un'altro sito interessante per la security che è OT per quanto riguarda la programmazione ma che secondo me è un punto di riferimento per capire che cosa può essere attaccato:
http://www.securityfocus.com/vulnerabilities
Su questo sito potete trovare le vulnerabilità dei vari prodotti suddivisi per vendor. E' costantemente aggiornato e penso che fare un'applicazione web quanto più sicura possibile è utile combinare sia la programmazione sicura sia effetture le patch dei vari prodotti tenendo presente sempre che le vulnerabilità vengono scoperte di giorno in giorno.

Ola

JF


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 15 messaggi ]  Vai alla pagina 1, 2  Prossimo

Tutti gli orari sono UTC


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduzione Italiana phpBBItalia.net basata su phpBB.it 2010
[ Time : 0.082s | 15 Queries | GZIP : Off ]