0

テキストエリアでphpスクリプトを許可するにはどうすればよいですか。セキュリティ上のリスクがあることは承知していますが、管理パネルから実行したいので、セキュリティの心配はありません。テキストエリアにphpファイルを1つインクルードし、テキストエリアのコンテンツを表示する際に実行したいです。どうすればいいですか?

4

4 に答える 4

0

対応する PHP コードを新しいファイルに保存し、PHP ファイルを表示したい位置にインクルードします。

于 2013-01-08T16:30:10.477 に答える
0

実行したいコードを文字列変数に取得します。

eval($phpcode);

その特定の場所でそのファイルコードを実行したいのはなぜですか? コードを関数に入れて、そこで関数を呼び出すことはできませんか?

また、正確に何が起こっているのかを説明してください。実行する必要があるこの動的な PHP コードは何ですか? 制御できないコードに、PHP ファイルに保存されている DB やパスワードを含め、環境への完全なアクセス権を与えているのです! 単純な GET パラメータによって、ppl がオーバーフローをスタックし、サイトを完全に制御できる場合、すべてを完全に簡単に制御できるようになります! そして、それが管理パネルにあるとは言わないでください。セキュリティを確保するのに十分だと思うなら、セキュリティ上の欠陥の方が大きいです!

たとえそれが百の可能なコードであっても。それらを関数内のファイルに入れ、実行するコンボボックスのリストをユーザーに提供します。

管理者ユーザーがコードをカスタマイズする必要がある場合は、プラグイン システムを使用します。

管理者ユーザーがカスタム クイック コードを実行する必要がある場合は、コントロール パネルへのアクセスを許可して、ファイルを直接追加および編集できるようにします。

于 2013-01-08T16:33:23.223 に答える
0

サーバー側でeval関数を使用できますが、使用する前に php タグを消去する必要があります。

<form method="post" action="server.php">
    <textarea name="text_area"></textarea>
</form>

<?php
// when display content
$pattern = "/<\?php(.*?)\?>/";
preg_match($pattern, $textarea_value, $matches);
foreach ($matches as $phpcode) {
    eval($phpcode);
}
?>

もちろん、セキュリティ上の理由を忘れないでください。このコードにより、テキストエリアに多くのphpコードと単純なテキストを同時に追加できます

于 2013-01-08T16:38:08.050 に答える
0

テキストエリアに入力されたテキストを受け取りたい、またはテキストエリア要素内でコードを実行したいということは理解しています...

<?php
    $unsecurePHPcode = $POST['unsecurePHPcode'];
?>
<textarea name="unsecurePHPcode">
<?php eval($unsecurePHPcode); ?>
</textarea>
于 2013-01-08T16:44:50.970 に答える