テキストエリアでphpスクリプトを許可するにはどうすればよいですか。セキュリティ上のリスクがあることは承知していますが、管理パネルから実行したいので、セキュリティの心配はありません。テキストエリアにphpファイルを1つインクルードし、テキストエリアのコンテンツを表示する際に実行したいです。どうすればいいですか?
4 に答える
対応する PHP コードを新しいファイルに保存し、PHP ファイルを表示したい位置にインクルードします。
実行したいコードを文字列変数に取得します。
eval($phpcode);
その特定の場所でそのファイルコードを実行したいのはなぜですか? コードを関数に入れて、そこで関数を呼び出すことはできませんか?
また、正確に何が起こっているのかを説明してください。実行する必要があるこの動的な PHP コードは何ですか? 制御できないコードに、PHP ファイルに保存されている DB やパスワードを含め、環境への完全なアクセス権を与えているのです! 単純な GET パラメータによって、ppl がオーバーフローをスタックし、サイトを完全に制御できる場合、すべてを完全に簡単に制御できるようになります! そして、それが管理パネルにあるとは言わないでください。セキュリティを確保するのに十分だと思うなら、セキュリティ上の欠陥の方が大きいです!
たとえそれが百の可能なコードであっても。それらを関数内のファイルに入れ、実行するコンボボックスのリストをユーザーに提供します。
管理者ユーザーがコードをカスタマイズする必要がある場合は、プラグイン システムを使用します。
管理者ユーザーがカスタム クイック コードを実行する必要がある場合は、コントロール パネルへのアクセスを許可して、ファイルを直接追加および編集できるようにします。
サーバー側で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コードと単純なテキストを同時に追加できます
テキストエリアに入力されたテキストを受け取りたい、またはテキストエリア要素内でコードを実行したいということは理解しています...
<?php
$unsecurePHPcode = $POST['unsecurePHPcode'];
?>
<textarea name="unsecurePHPcode">
<?php eval($unsecurePHPcode); ?>
</textarea>