Mostra notizie nelle discussioni
  • Avatar
    Scritto da
    Non Autenticato
    il 2014-10-31 18:58:30.0 alle 2014-10-31 18:58:30.0
    Sanitizzazione dell'input
    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?
    • Avatar
      ☺
      Scritto da
      altg
      utente che non utiene
      il 2014-10-31 19:05:59.0 alle 2014-10-31 19:05:59.0
      Trollate totali: 11540
      Re: Sanitizzazione dell'input
      > 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. Imbarazzato
      • Avatar
        Scritto da
        Non Autenticato
        il 2014-10-31 19:44:54.0 alle 2014-10-31 19:44:54.0
        Re: Sanitizzazione dell'input
        Scritto 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. Imbarazzato

        A bocca storta
    • Avatar
      ☺
      Scritto da
      ::1
      il 2014-10-31 20:00:38.0 alle 2014-10-31 20:00:38.0
      Trollate totali: 12321
      Re: Sanitizzazione dell'input
      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.

      > 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.
      • Avatar
        ☺
        Scritto da
        altg
        utente che non utiene
        il 2014-10-31 20:10:17.0 alle 2014-10-31 20:10:17.0
        Trollate totali: 11540
        Re: Sanitizzazione dell'input
        > > 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. In lacrime
        Come sarebbe non usare POST per scrivere... cosa? Keroppi

        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". Angioletto 2
        • Avatar
          ☺
          Scritto da
          ::1
          il 2014-10-31 20:42:09.0 alle 2014-10-31 20:42:09.0
          Trollate totali: 12321
          Re: Sanitizzazione dell'input
          Scritto da: altg
          >
          > Non ci ho capito quasi una minchia. In lacrime
          > Come sarebbe non usare POST per scrivere... cosa? Keroppi

          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". Angioletto 2

          Infatti frenchi in un nanosecondo ti aveva trovato i buchi di postlinePiagninaPiagninaPiagninaPiagnina
          Young professional woman and busy mom.
          • Avatar
            ☺
            Scritto da
            altg
            utente che non utiene
            il 2014-10-31 20:46:09.0 alle 2014-10-31 20:46:09.0
            Trollate totali: 11540
            Re: Sanitizzazione dell'input
            > > Non ci ho capito quasi una minchia. In lacrime
            > > Come sarebbe non usare POST per scrivere... cosa? Keroppi
            >
            > 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". Angioletto 2
            >
            > Infatti frenchi in un nanosecondo ti aveva trovato i buchi di postlinePiagninaPiagninaPiagninaPiagnina

            Non me li dite, tanto non ho voglia di tapparli... A bocca aperta
            ormai conviene finire tutto a martellate e poi riscriverlo in linoleum Geek
            • Avatar
              Scritto da
              Non Autenticato
              il 2014-10-31 21:13:36.0 alle 2014-10-31 21:13:36.0
              Re: Sanitizzazione dell'input
              Scritto da: altg
              > > > Non ci ho capito quasi una minchia. In lacrime
              > > > Come sarebbe non usare POST per scrivere... cosa? Keroppi
              > >
              > > 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". Angioletto 2
              > >
              > > Infatti frenchi in un nanosecondo ti aveva trovato i buchi di postlinePiagninaPiagninaPiagninaPiagnina
              >
              > Non me li dite, tanto non ho voglia di tapparli... A bocca aperta
              > ormai conviene finire tutto a martellate e poi riscriverlo in linoleum Geek

              Naaah è un ottimo programma PHP!
          • Avatar
            Scritto da
            Non Autenticato
            il 2014-10-31 20:52:12.0 alle 2014-10-31 20:52:12.0
            Re: Sanitizzazione dell'input
            Scritto da: ::1
            > Scritto da: altg
            > >
            > > Non ci ho capito quasi una minchia. In lacrime
            > > Come sarebbe non usare POST per scrivere... cosa? Keroppi
            >
            > 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". Angioletto 2
            >
            > Infatti frenchi in un nanosecondo ti aveva trovato i buchi di postlinePiagninaPiagninaPiagninaPiagnina
      • Avatar
        Scritto da
        Non Autenticato
        il 2014-10-31 21:03:39.0 alle 2014-10-31 21:03:39.0
        Re: Sanitizzazione dell'input
        Scritto 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 Piagnina 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.
        • Avatar
          ☺
          Scritto da
          altg
          utente che non utiene
          il 2014-11-01 01:09:15.0 alle 2014-11-01 01:09:15.0
          Trollate totali: 11540
          Re: Sanitizzazione dell'input
          > 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...
          • Avatar
            Scritto da
            Non Autenticato
            il 2014-11-01 01:39:00.0 alle 2014-11-01 01:39:00.0
            Re: Sanitizzazione dell'input
            Scritto 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 Ficoso. 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.
    • Avatar
      Scritto da
      Non Autenticato
      il 2014-10-31 21:23:01.0 alle 2014-10-31 21:23:01.0
      Re: Sanitizzazione dell'input
      Scritto 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
<softv>

Pagina generata in 91 millisecondi

Utenti attivi: 11 nell'ultimo minuto, 22 negli ultimi cinque minuti, 46 negli ultimi 15 minuti