有沒有辦法在php.ini文件中禁用eval函數。 我試過ini_set函數,但即使這樣也行不通。如何禁用eval函數而不需要php.ini文件?
基本上我希望我的框架用戶決定是否應該通過配置文件啓用此功能。如果他們說不,我應該能夠使用代碼禁用它,因爲我無法訪問安裝了框架的每個用戶的服務器,並使用php.ini文件禁用它。
正如我所說沒有goint到php.ini文件,所以ini指令disable_functions不應該張貼在答案。
請幫助。
有沒有辦法在php.ini文件中禁用eval函數。 我試過ini_set函數,但即使這樣也行不通。如何禁用eval函數而不需要php.ini文件?
基本上我希望我的框架用戶決定是否應該通過配置文件啓用此功能。如果他們說不,我應該能夠使用代碼禁用它,因爲我無法訪問安裝了框架的每個用戶的服務器,並使用php.ini文件禁用它。
正如我所說沒有goint到php.ini文件,所以ini指令disable_functions不應該張貼在答案。
請幫助。
它不起作用,因爲eval()不是函數 - 它是一種語言結構。您可以使用suhosin(一種PHP的保護系統)將其禁用。這是我知道的唯一途徑。
從PHP.net:
Note: Because this is a language construct and not a function, it cannot be called using variable functions
如果這是mod_php(不是CGI)與apache,.htaccess將工作。除此之外......運氣不好。
我想你可以撥打override_function
一個沒有任何作用的新功能。 (req APD)
https://github.com/mk-j/PHP_diseval_extension允許您禁用PHP7 EVAL和PHP5。 Suhosin只在php5中穩定。
它不是一個函數,它是一種語言結構。 – 2009-12-09 09:28:51