-
Sanitizzazione dell'inputScritto daNon Autenticatoil 2014-10-31 18:58:30.0 alle 2014-10-31 18:58:30.0Ai tempi in cui me n'ero occupato si fondeva con il problema dell'erronea trasmissione di certi caratteri da parte dei browser (un baco forse risalente a Mosaic) per cui conveniva trasformare in entità via Javascript tutti i caratteri non lower ASCII, e anche qualcuno lower ASCII, prima di trasmetterli al server.
Suppongo che oggi i browser trasmettano correttamente tutti i caratteri Unicode, e allora mi chiedo, come dev'essere fatta oggi questa igienizzazione? Col Viakal?
Una volta che la stringa inserita in un campo INPUT o TEXTAREA o altro è ricevuta dal server, questo che deve fare per evitare iniezioni di codice o altri problemi? Convertire in entità i caratteri aventi un significato particolare in HTML, JS e PHP, e opzionalmente tutto ciò che eccede il lower ASCII per prevenire problemi di encoding?-
Re: Sanitizzazione dell'inputScritto daaltgutente che non utieneil 2014-10-31 19:05:59.0 alle 2014-10-31 19:05:59.0Trollate totali: 11540> Ai tempi in cui me n'ero occupato si fondeva con il problema dell'erronea trasmissione di certi caratteri da parte dei browser (un baco forse risalente a Mosaic) per cui conveniva trasformare in entità via Javascript tutti i caratteri non lower ASCII, e anche qualcuno lower ASCII, prima di trasmetterli al server.
>
> Suppongo che oggi i browser trasmettano correttamente tutti i caratteri Unicode, e allora mi chiedo, come dev'essere fatta oggi questa igienizzazione? Col Viakal?
>
> Una volta che la stringa inserita in un campo INPUT o TEXTAREA o altro è ricevuta dal server, questo che deve fare per evitare iniezioni di codice o altri problemi? Convertire in entità i caratteri aventi un significato particolare in HTML, JS e PHP, e opzionalmente tutto ciò che eccede il lower ASCII per prevenire problemi di encoding?
Che cos'e` il "lower ASCII"? Il vero ASCII e` a 7 bit allineati a 8. Tutto quello che supera 127 non e` piu` ASCII. Le accentate in qualsiasi codifica non sono ASCII, al massimo un ASCII esteso. Per me ehm... l'unicode non esiste sicche` non mi pongo il problema. Escapo & < > ' ", taglio tutto quello che non e` un tab un cr o un lf sotto allo spazio, e tutto quello che e` sopra 126, e chi c'e` c'e` chi non c'e` s'arrangia.
-
Re: Sanitizzazione dell'inputScritto daNon Autenticatoil 2014-10-31 19:44:54.0 alle 2014-10-31 19:44:54.0Scritto da: altg
> > Ai tempi in cui me n'ero occupato si fondeva con il problema dell'erronea trasmissione di certi caratteri da parte dei browser (un baco forse risalente a Mosaic) per cui conveniva trasformare in entità via Javascript tutti i caratteri non lower ASCII, e anche qualcuno lower ASCII, prima di trasmetterli al server.
> >
> > Suppongo che oggi i browser trasmettano correttamente tutti i caratteri Unicode, e allora mi chiedo, come dev'essere fatta oggi questa igienizzazione? Col Viakal?
> >
> > Una volta che la stringa inserita in un campo INPUT o TEXTAREA o altro è ricevuta dal server, questo che deve fare per evitare iniezioni di codice o altri problemi? Convertire in entità i caratteri aventi un significato particolare in HTML, JS e PHP, e opzionalmente tutto ciò che eccede il lower ASCII per prevenire problemi di encoding?
>
> Che cos'e` il "lower ASCII"? Il vero ASCII e` a 7 bit allineati a 8. Tutto quello che supera 127 non e` piu` ASCII. Le accentate in qualsiasi codifica non sono ASCII, al massimo un ASCII esteso.
In un qualche posto ho letto l'appellativo "lower ASCII" per i caratteri codificati da 0 a 127, mentre il resto sarebbe ASCII esteso. Perché nel momento in cui il resto è ASCII esteso, si prende l'abitudine di pensare all'intero blocco 0-255 come ad ASCII, e allora occorre poi specificare quale ASCII (le famose tabelle 837 e 450 del DOS) e puntualizzare "lower ASCII" per indicare l'ASCII originario. Almeno penso, magari le definizioni sono poi diverse.
> Per me ehm... l'unicode non esiste sicche` non mi pongo il problema. Escapo & < > ' ", taglio tutto quello che non e` un tab un cr o un lf sotto allo spazio, e tutto quello che e` sopra 126, e chi c'e` c'e` chi non c'e` s'arrangia.
-
-
Re: Sanitizzazione dell'inputScritto da:
> Ai tempi in cui me n'ero occupato si fondeva con il problema dell'erronea trasmissione di certi caratteri da parte dei browser (un baco forse risalente a Mosaic) per cui conveniva trasformare in entità via Javascript tutti i caratteri non lower ASCII, e anche qualcuno lower ASCII, prima di trasmetterli al server.
Succede ancora oggi con IE che non onora il page encoding quando invia i form, a meno che non gli infili tra i dati da inviare un carattere tipo snowman o pile of poo che non sta nelle tabelle caratteri non unicode.
> Suppongo che oggi i browser trasmettano correttamente tutti i caratteri Unicode, e allora mi chiedo, come dev'essere fatta oggi questa igienizzazione? Col Viakal?
>
> Una volta che la stringa inserita in un campo INPUT o TEXTAREA o altro è ricevuta dal server, questo che deve fare per evitare iniezioni di codice o altri problemi? Convertire in entità i caratteri aventi un significato particolare in HTML, JS e PHP, e opzionalmente tutto ciò che eccede il lower ASCII per prevenire problemi di encoding?
Il trasporto dal browser al server avviene solitamente mediante percent encoding fatta dal browser (enctype application/x-www-form-urlencoded). Devi trasportare la stringa ricevuta, opportunamente trattata dal framework server che si usa, possibilmente così com'è (non come sul fdt) e escapare l'output con le apposite funzioni. Se usi un db usa sempre i prepared statement. Non fidarti del client per niente che non sia il mero dato richiesto, abusa della sessione utente (praticamente tutti i framework web la mettono a disposizione). Le operazioni di scrittura non vanno fatte con metodo http POST (verificalo sempre) per evitare che un link malevolo possa eseguire operazioni non desiderate.
Il tuo punto di partenza comunque è owasp top 10 per le vulnerabilità più diffuse e i rimedi da usare: https://www.owasp.org/index.php/Category:OWASP_Top...
Young professional woman and busy mom.-
Re: Sanitizzazione dell'inputScritto daaltgutente che non utieneil 2014-10-31 20:10:17.0 alle 2014-10-31 20:10:17.0Trollate totali: 11540> > Ai tempi in cui me n'ero occupato si fondeva con il problema dell'erronea trasmissione di certi caratteri da parte dei browser (un baco forse risalente a Mosaic) per cui conveniva trasformare in entità via Javascript tutti i caratteri non lower ASCII, e anche qualcuno lower ASCII, prima di trasmetterli al server.
>
> Succede ancora oggi con IE che non onora il page encoding quando invia i form, a meno che non gli infili tra i dati da inviare un carattere tipo snowman o pile of poo che non sta nelle tabelle caratteri non unicode.
>
> > Suppongo che oggi i browser trasmettano correttamente tutti i caratteri Unicode, e allora mi chiedo, come dev'essere fatta oggi questa igienizzazione? Col Viakal?
> >
> > Una volta che la stringa inserita in un campo INPUT o TEXTAREA o altro è ricevuta dal server, questo che deve fare per evitare iniezioni di codice o altri problemi? Convertire in entità i caratteri aventi un significato particolare in HTML, JS e PHP, e opzionalmente tutto ciò che eccede il lower ASCII per prevenire problemi di encoding?
>
> Il trasporto dal browser al server avviene solitamente mediante percent encoding fatta dal browser (enctype application/x-www-form-urlencoded). Devi trasportare la stringa ricevuta, opportunamente trattata dal framework server che si usa, possibilmente così com'è (non come sul fdt) e escapare l'output con le apposite funzioni. Se usi un db usa sempre i prepared statement. Non fidarti del client per niente che non sia il mero dato richiesto, abusa della sessione utente (praticamente tutti i framework web la mettono a disposizione). Le operazioni di scrittura non vanno fatte con metodo http POST (verificalo sempre) per evitare che un link malevolo possa eseguire operazioni non desiderate.
> Il tuo punto di partenza comunque è owasp top 10 per le vulnerabilità più diffuse e i rimedi da usare: https://www.owasp.org/index.php/Category:OWASP_Top...
Non ci ho capito quasi una minchia.
Come sarebbe non usare POST per scrivere... cosa?
La mia Top 1 (uno e basta) per evitare hackeraggi e` sempre stata "tanto scrivo tutto io, sicche` chi deve hackerare deve prima capire come funziona tutta la baracca, mica trova gli exploit pronti".
-
Re: Sanitizzazione dell'inputScritto da: altg
>
> Non ci ho capito quasi una minchia.
> Come sarebbe non usare POST per scrivere... cosa?
Ho sbagliato: era usare sempre POST, all'inizio mi stavo mettendo a parlare di metodi idempotenti, il non mi è rimasto là.
> La mia Top 1 (uno e basta) per evitare hackeraggi e` sempre stata "tanto scrivo tutto io, sicche` chi deve hackerare deve prima capire come funziona tutta la baracca, mica trova gli exploit pronti".
Infatti frenchi in un nanosecondo ti aveva trovato i buchi di postline


Young professional woman and busy mom.-
Re: Sanitizzazione dell'inputScritto daaltgutente che non utieneil 2014-10-31 20:46:09.0 alle 2014-10-31 20:46:09.0Trollate totali: 11540> > Non ci ho capito quasi una minchia.

> > Come sarebbe non usare POST per scrivere... cosa?
>
> Ho sbagliato: era usare sempre POST, all'inizio mi stavo mettendo a parlare di metodi idempotenti, il non mi è rimasto là.
>
> > La mia Top 1 (uno e basta) per evitare hackeraggi e` sempre stata "tanto scrivo tutto io, sicche` chi deve hackerare deve prima capire come funziona tutta la baracca, mica trova gli exploit pronti".
>
> Infatti frenchi in un nanosecondo ti aveva trovato i buchi di postline



Non me li dite, tanto non ho voglia di tapparli...
ormai conviene finire tutto a martellate e poi riscriverlo in linoleum
-
Re: Sanitizzazione dell'inputScritto daNon Autenticatoil 2014-10-31 21:13:36.0 alle 2014-10-31 21:13:36.0Scritto da: altg
> > > Non ci ho capito quasi una minchia.
> > > Come sarebbe non usare POST per scrivere... cosa?
> >
> > Ho sbagliato: era usare sempre POST, all'inizio mi stavo mettendo a parlare di metodi idempotenti, il non mi è rimasto là.
> >
> > > La mia Top 1 (uno e basta) per evitare hackeraggi e` sempre stata "tanto scrivo tutto io, sicche` chi deve hackerare deve prima capire come funziona tutta la baracca, mica trova gli exploit pronti".
> >
> > Infatti frenchi in un nanosecondo ti aveva trovato i buchi di postline



>
> Non me li dite, tanto non ho voglia di tapparli...
> ormai conviene finire tutto a martellate e poi riscriverlo in linoleum
Naaah è un ottimo programma PHP!
-
-
Re: Sanitizzazione dell'inputScritto daNon Autenticatoil 2014-10-31 20:52:12.0 alle 2014-10-31 20:52:12.0Scritto da: ::1
> Scritto da: altg
> >
> > Non ci ho capito quasi una minchia.
> > Come sarebbe non usare POST per scrivere... cosa?
>
> Ho sbagliato: era usare sempre POST, all'inizio mi stavo mettendo a parlare di metodi idempotenti, il non mi è rimasto là.
Ah meno male, mi ci stavo già scervellando.
> > La mia Top 1 (uno e basta) per evitare hackeraggi e` sempre stata "tanto scrivo tutto io, sicche` chi deve hackerare deve prima capire come funziona tutta la baracca, mica trova gli exploit pronti".
>
> Infatti frenchi in un nanosecondo ti aveva trovato i buchi di postline



-
-
-
Re: Sanitizzazione dell'inputScritto daNon Autenticatoil 2014-10-31 21:03:39.0 alle 2014-10-31 21:03:39.0Scritto da: ::1
> Scritto da:
> > Ai tempi in cui me n'ero occupato si fondeva con il problema dell'erronea trasmissione di certi caratteri da parte dei browser (un baco forse risalente a Mosaic) per cui conveniva trasformare in entità via Javascript tutti i caratteri non lower ASCII, e anche qualcuno lower ASCII, prima di trasmetterli al server.
>
> Succede ancora oggi con IE che non onora il page encoding quando invia i form, a meno che non gli infili tra i dati da inviare un carattere tipo snowman o pile of poo che non sta nelle tabelle caratteri non unicode.
È una brutta notizia
ma una soluzione intelligente è fegarsene. Se un utente lamenta il baco dai comunque la colpa a Exploder, rispondi che prima o poi lo correggeranno, inviti a usare Firefox. Non mi metterei a riscrivere un programma per star dietro a Explorer.
> > Suppongo che oggi i browser trasmettano correttamente tutti i caratteri Unicode, e allora mi chiedo, come dev'essere fatta oggi questa igienizzazione? Col Viakal?
> >
> > Una volta che la stringa inserita in un campo INPUT o TEXTAREA o altro è ricevuta dal server, questo che deve fare per evitare iniezioni di codice o altri problemi? Convertire in entità i caratteri aventi un significato particolare in HTML, JS e PHP, e opzionalmente tutto ciò che eccede il lower ASCII per prevenire problemi di encoding?
>
> Il trasporto dal browser al server avviene solitamente mediante percent encoding fatta dal browser (enctype application/x-www-form-urlencoded). Devi trasportare la stringa ricevuta, opportunamente trattata dal framework server che si usa, possibilmente così com'è (non come sul fdt) e escapare l'output con le apposite funzioni. Se usi un db usa sempre i prepared statement. Non fidarti del client per niente che non sia il mero dato richiesto, abusa della sessione utente (praticamente tutti i framework web la mettono a disposizione). Le operazioni di scrittura non vanno fatte con metodo http POST (verificalo sempre) per evitare che un link malevolo possa eseguire operazioni non desiderate.
> Il tuo punto di partenza comunque è owasp top 10 per le vulnerabilità più diffuse e i rimedi da usare: https://www.owasp.org/index.php/Category:OWASP_Top...
Eeeh ma non devo farlo io. Nell'eBay Clone ho trovato dei bachi - qui ci sarebbe da aprire una lunga parentesi sul mio karma, se nel pagliaio c'è un ago che nessuno ha mai trovato, mi ci siedo e mi si pianta nel culo - e a questo punto ho tre possibilità: correggerlo io (gran perdita di tempo e grazia di Dio), pagare qualcuno per correggerlo (perdita di soldi) o, perché no, comunicare un elenco dei bachi agli sviluppatori. Dopo tutto si tratta di un programma ancora sviluppato attivamente, a differenza da altri concorrenti derivati dallo stesso script originario, correggere i bachi è anche nel loro interesse.
Uno di questi bachi è che se l'input contiene caratteri speciali, viene tagliato tutto dal primo di essi in poi, dannati anglosassoni che non pensano mai alle altre lingue. Nel segnalarglielo pensavo anche di unire un suggerimento su come corregerlo in modo che facciano le cose come si deve, ma prima devo avere io le idee chiare.-
Re: Sanitizzazione dell'inputScritto daaltgutente che non utieneil 2014-11-01 01:09:15.0 alle 2014-11-01 01:09:15.0Trollate totali: 11540> Eeeh ma non devo farlo io. Nell'eBay Clone ho trovato dei bachi - qui ci sarebbe da aprire una lunga parentesi sul mio karma, se nel pagliaio c'è un ago che nessuno ha mai trovato, mi ci siedo e mi si pianta nel culo -
Una possibilita` sarebbe farti assumere come betatester...-
Re: Sanitizzazione dell'inputScritto daNon Autenticatoil 2014-11-01 01:30:00.0 alle 2014-11-01 01:30:00.0Scritto da: altg
> > Eeeh ma non devo farlo io. Nell'eBay Clone ho trovato dei bachi - qui ci sarebbe da aprire una lunga parentesi sul mio karma, se nel pagliaio c'è un ago che nessuno ha mai trovato, mi ci siedo e mi si pianta nel culo -
>
> Una possibilita` sarebbe farti assumere come betatester...
BRRR, ma è una specie di lavoro!
-
Re: Sanitizzazione dell'inputScritto daNon Autenticatoil 2014-11-01 01:39:00.0 alle 2014-11-01 01:39:00.0Scritto da: altg
> > Eeeh ma non devo farlo io. Nell'eBay Clone ho trovato dei bachi - qui ci sarebbe da aprire una lunga parentesi sul mio karma, se nel pagliaio c'è un ago che nessuno ha mai trovato, mi ci siedo e mi si pianta nel culo -
>
> Una possibilita` sarebbe farti assumere come betatester...
Avevo già raccontato che nell'azienda dove ho lavorato eoni fa ci avevano dato da testare un'applicazione, ognuno aveva segnalato quattro o cinque bachi mentre io ne avevo trovati una quarantina
. Il rovescio della medaglia è che vedo bachi dappertutto, e alcuni di essi mi procurano un nervoso permanente, ad esempio quelli che hanno a che vedere con la politica, la magistratura, e in genere le decisioni prese da altri su cose che riguardano anche me, ma sulle quali non ho il potere di influire.
-
-
-
-
Re: Sanitizzazione dell'inputScritto daNon Autenticatoil 2014-10-31 21:23:01.0 alle 2014-10-31 21:23:01.0Scritto da:
> Suppongo che oggi i browser trasmettano correttamente tutti i caratteri Unicode, e allora mi chiedo, come dev'essere fatta oggi questa igienizzazione? Col Viakal?
Naaa il Viacal non serve a nulla. Se vuoi essere sicuro devi usare la vecchia maniera, con la formaldeide. In alternativa ci sarebbe il vapore con almeno 1/2 ora a più di 121°C.
Troll farmacista
-