Repository 32bit  Forum
Repository 64bit  Wiki

attacchi PHP: apici singoli e doppi

Postate qui per tutte le discussioni legate alla sicurezza di Linux/Slackware

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

attacchi PHP: apici singoli e doppi

Messaggioda tommyblue » mer giu 15, 2005 15:21

Creando un modulo per phpnuke si è accesa una interessante discussione col mio 'collega' programmatore php:
dovendo inserire in nel database dei dati provenienti dai form prima di tutto filtriamo i dati. Abbiamo quindi guardato un po' a giro materiale sulle sql-injection e le union select.

In molti siti il consiglio è quello di sostituire le virgolette doppie " con \" per evitare problemi.
Nessuno, o quasi, fa invece attenzione agli apici singoli '.

Eccoci quindi al dubbio: nelle query mysql i dati (e quindi anche le variabili provenienti dai form) vengono "incapsulati" da apici singoli. un esempio:
$query="SELECT * FROM tabella WHERE qualcosa='$variabile_dal_form'";

Quindi io mi proteggerei proprio da questi (sostituendo ' con /').
Non riesco invece a trovare un attacco possibile usando gli apici doppi " che tanto fanno paura ai programmatori... :?

cretino io??
tommyblue
Linux 2.0
Linux 2.0
 
Messaggi: 112
Iscritto il: gio mar 10, 2005 0:00

Messaggioda MAT » mer giu 15, 2005 16:26

tommyblue ha scritto:In molti siti il consiglio è quello di sostituire le virgolette doppie " con " per evitare problemi.
Nessuno, o quasi, fa invece attenzione agli apici singoli '.

Boh.. direi che solo gli apici singoli possano dare noie (e il backslash), personalmente non ho mai badato alle virgolette doppie, anche perché, in fase di visualizzazione in una pagina html, queste diventano "
Avatar utente
MAT
Linux 3.x
Linux 3.x
 
Messaggi: 1242
Iscritto il: mer mar 09, 2005 0:00
Località: Vignola, Modena
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo

Messaggioda tommyblue » mer giu 15, 2005 18:18

MAT ha scritto:non ho mai badato alle virgolette doppie, anche perché, in fase di visualizzazione in una pagina html, queste diventano "


:?: :?: :?:

casomai il contrario: " viene visualizzato come "
proprio per questo spesso si usa una funzione per trasformare le doppie virgolette in "

" rimane "
tommyblue
Linux 2.0
Linux 2.0
 
Messaggi: 112
Iscritto il: gio mar 10, 2005 0:00

Messaggioda MAT » mer giu 15, 2005 19:11

Certo che " viene mostrato come " dal browser, ma sarebbe buona norma per l'applicazione web sostituire tutti i caratteri " con " prima di mandarli in output.
Avatar utente
MAT
Linux 3.x
Linux 3.x
 
Messaggi: 1242
Iscritto il: mer mar 09, 2005 0:00
Località: Vignola, Modena
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo

Messaggioda tommyblue » mer giu 15, 2005 19:15

lo facevo anch'io, ma prova nel form a scrivere in html, ad esempio <a href="link">, non funziona più nulla
tommyblue
Linux 2.0
Linux 2.0
 
Messaggi: 112
Iscritto il: gio mar 10, 2005 0:00

Messaggioda MAT » mer giu 15, 2005 22:32

tommyblue ha scritto:lo facevo anch'io, ma prova nel form a scrivere in html, ad esempio <a href="link">, non funziona più nulla

Che intendi? Certo, < e > vengono sostituiti da &lt; e &gt; quindi il link in effetti non viene creato... è normale, è per evitare che chicchessia scriva quello che gi pare, magari fastidiosi effetti javascript. Per questo si utilizza la funzione htmlencode
Forse intendevi qualcos'altro?
Avatar utente
MAT
Linux 3.x
Linux 3.x
 
Messaggi: 1242
Iscritto il: mer mar 09, 2005 0:00
Località: Vignola, Modena
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo

Messaggioda tommyblue » gio giu 16, 2005 0:15

si, che il controllo lo farei sul tag e non sulle doppie virgolette e < >, non voglio, ad esempio, un javascript, ma un link o simili si!
tommyblue
Linux 2.0
Linux 2.0
 
Messaggi: 112
Iscritto il: gio mar 10, 2005 0:00

Messaggioda MAT » gio giu 16, 2005 9:18

In questo caso la cosa più semplice è usare un codice tipo BBCode che si usa anche in questo forum per esempio (devi costruirti il tuo parser). Oppure un altro parser per controllare che il testo immesso non contenga ciò che non vuoi.. morale: secondo me è meglio creare un tuo codice per permettere ciò che vuoi.
Avatar utente
MAT
Linux 3.x
Linux 3.x
 
Messaggi: 1242
Iscritto il: mer mar 09, 2005 0:00
Località: Vignola, Modena
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo

Messaggioda hebiten » lun giu 27, 2005 15:08

Hola,
qui trovi molte cose sulla sicurezza in php.

http://phpsec.org/


bye
hebiten
Linux 1.0
Linux 1.0
 
Messaggi: 87
Iscritto il: mer gen 28, 2004 0:00

Messaggioda evaimitico » mar giu 28, 2005 10:44

se usi smarty c'è un modifier/plugin aggiuntivo che ti permette di interpretare già il
bbcode. Su un sito cui collaboro l'abbiamo adattato velocemente (sono delle regular expression :) per aggiungere dei bbcode personalizzati.
evaimitico
Linux 2.0
Linux 2.0
 
Messaggi: 140
Iscritto il: mar giu 15, 2004 23:00


Torna a Sicurezza

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti