1

php exec を使用してシェルスクリプトを実行しようとしています。

問題は、HTMLテキストボックスを介して投稿しているため、これはあまり安全ではありません.

<?php
$output = shell_exec ('whois '.$_POST['domain']);
echo "<pre>$output</pre>";
?>

問題は... ユーザーが入力した場合| rm -rf *

フォルダ内のすべてを削除します。

シェル スクリプトを実行し、これが起こらないようにする安全な方法はありますか?

ありがとう

4

2 に答える 2

1

別のシステムに渡されるユーザー データをエスケープする関数が常に存在します。シェル コマンドの場合、escapeshellargがあります。ユーザー入力に対して他の種類の検証を行う場合でも、引数をシェル関数に渡す直前にエスケープすることをお勧めします。

例えば:

$domain_arg = escapeshellarg( $_POST['domain'] );
$output = shell_exec( 'whois ' . $domain_arg );
于 2013-04-26T15:24:14.297 に答える