Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #20977

Re: istruzione eval()

From Alessandro Pellizzari <shuriken@amiran.it>
Newsgroups it.comp.www.php
Subject Re: istruzione eval()
Date 2016-06-22 11:27 +0100
Message-ID <dsv7h4Fo85sU1@mid.individual.net> (permalink)
References <nkb8rb$2mab$1@adenine.netfront.net> <ccqimb9kv225d5h78motmcsqrli4tvo165@L.Serni> <nkc0jp$27el$1@adenine.netfront.net> <h3jjmb91pm79gubcvfpvv67fm050usf4r2@L.Serni> <nkdmnm$234d$1@adenine.netfront.net>

Show all headers | View raw


On 22/06/2016 10:45, Alex wrote:

> Leonardo Serni scriveva il 22/06/2016 :

>> Se hai del codice scritto male, dove eval() può fare dei danni, allora
>> tappare le porte a eval() non ottiene assolutamente niente. Perché per
>> poter funzionare, una sequenza come "eval" deve essere _ESEGUITA_.

> Per essere eseguita, basta chiamarla per nome ...

Il punto è: chi la chiama per nome?

Se è il tuo codice a farlo, vuol dire che tu stai usando eval per 
eseguire qualcosa che l'utente ti ha mandato, e qui il problema è tuo.

Se viene eseguito perchè permetti all'utente di scrivere nello spazio 
pubblico del sito (upload area o simile), allora gli basta caricare un 
file .php e andarci subito dopo. Non gli serve eval().

Praticamente tutti gli altri casi ricadono in queste due casistiche e 
nella loro combinazione.

Se usi un motore di templating, tipo twig, che usa eval per motivi 
prestazionali, e gli passi roba creata dall'utente, ricadi nel primo 
caso. Se, sempre in twig, disabiliti l'escaping sull'output di una 
variabile caricata dall'utente, e lui carica php, ricadi nel secondo 
caso (ma può caricare anche codice js per CSRF e simile).

Se stai usando plugin joomla che usano male eval, non usarli. O non 
usare joomla. :)

Insomma, come dice Leonardo, intercettare eval è forse l'ultimo dei tuoi 
problemi di sicurezza.

Bye.

Back to it.comp.www.php | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

istruzione eval() Alex <tommaso5ita@yahoo.it> - 2016-06-21 13:36 +0200
  Re: istruzione eval() Leonardo Serni <lserni@gmail.com> - 2016-06-21 18:31 +0200
    Re: istruzione eval() Alex <tommaso5ita@yahoo.it> - 2016-06-21 20:21 +0200
      Re: istruzione eval() fmassei@gmail.com - 2016-06-21 12:00 -0700
      Re: istruzione eval() Leonardo Serni <lserni@gmail.com> - 2016-06-22 01:37 +0200
        Re: istruzione eval() Alex <tommaso5ita@yahoo.it> - 2016-06-22 11:45 +0200
          Re: istruzione eval() Alessandro Pellizzari <shuriken@amiran.it> - 2016-06-22 11:27 +0100
            Re: istruzione eval() Alex <tommaso5ita@yahoo.it> - 2016-06-22 14:06 +0200
          Re: istruzione eval() Leonardo Serni <lserni@gmail.com> - 2016-06-22 15:44 +0200
            Re: istruzione eval() Alex <tommaso5ita@yahoo.it> - 2016-06-22 19:41 +0200
  Re: istruzione eval() fmassei@gmail.com - 2016-06-21 09:35 -0700
    Re: istruzione eval() Alex <tommaso5ita@yahoo.it> - 2016-06-21 20:24 +0200

csiph-web