Webサーバーでeval()が無効または有効になっていることを知る方法PHPコードはこれを知るために何か?サーバーで無効になっている場合、PHPコードを有効にするかどうかphp eval function
答えて
PHPには何も組み込まれていないため、評価を無効にすることはできません(無効にできる他の機能とは異なります)。
しかし、Suhosinと呼ばれるPHP用のセキュリティパスをインストールすると、evalを無効にしたり、PHPに他のセキュリティ機能を追加することができます。
http://www.hardened-php.net/suhosin/configuration.html#suhosin.executor.disable_eval
['eval'は言語構造である](http://www.php.net/manual/en/function.eval.php#refsect1-function.eval-notes)として私はあなたに同意するつもりです。これが 'eval'を無効にする唯一の方法であれば、' 'ini_get'](http://www.php.net/manual/en/function.ini-get.php)でチェックすることができます。 –
eval()
がで存在しているかどうかを判断することができるはずです:
http://php.net/manual/en/function.function-exists.php
if (function_exists('eval')) {
echo "eval() exists, it does it does!";
}
EDIT
は実際には、eval()
は言語construですctであるため、function_exists()
を使用してテストすることはできません。しかし、これは動作するはずです:
<?php
$isevalfunctionavailable = false;
$evalcheck = "\$isevalfunctionavailable = true;";
eval($evalcheck);
if ($isevalfunctionavailable === true) {
echo "\$isevalfunctionavailable is true.\n";
echo var_dump($isevalfunctionavailable);
}
?>
'eval'は言語構造であるため、これは常に失敗します。それは 'function_exists(" foreach ")' – mario
@marioのテストと似ています - あなたが正しいです。それらの厄介な言語構造! :P –
@mario - 私の編集はどうですか? –
さて、言ったように、eval
を無効にすることはほとんどありません。
$eval = create_function("", "$code");
$eval();
あるいは単に:
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_QUIET_EVAL, 1);
assert("$code");
とファイルシステム-回避策:
file_put_contents($tmp=tempnam("/tmp", "EVAL"), "$code");
include($tmp);
ストレートにevalにすべての作業と同等しかし、念のために、3つの回避策があります。
- 1. PHPのEval()問題
- 2. goto inside function php
- 3. PHP - IRC Function
- 4. php header function working
- 5. show function to php
- 6. PHP/SQL help with function
- 7. C#の - スタイルのPHP「evalの」
- 8. PHPのアルゴリズムがどのようにeval
- 9. mongo db find function in php
- 10. PHP PDO lastinsertid of previous function
- 11. php string同義語replace function
- 12. 、ボイド、evalを、およびJavaScriptでのFunctionコンストラクタの違いは何ですか?
- 13. PHPと似たC#の機能Eval()
- 14. Javascript json eval()injection
- 15. jQuery 1.7.1/eval/seq/
- 16. JavaScript dollar function、function $()error
- 17. jQuery .globalEval()function
- 18. FireFox this Function
- 19. Javascript eval alias
- 20. eval() - eval() 'dコードの解析エラー
- 21. EVALスキーム
- 22. eval() 'dコード行xx
- 23. $ function()と$$変数
- 24. "function not defined" in firebug
- 25. function doc.save width jspdf
- 26. #Eval Short Date
- 27. Eval()と式コード
- 28. eval {}文のスキップエラー
- 29. ASP:LinkButtonとEval
- 30. JSON.parseとeval()
eval( "echo 'Hello World!';"); あなたは行きます。 –
典型的なsafe_modeの制限は 'exec'とcoに影響します。しかし、 'eval'は通常ブロックされません。とにかく、 'include(.. file_put_contents(" tmp "、...))'を使って回避することができます。 – mario