私はPHPでシステムを呼び出すためにこれらのvarをフィルタリングし、シェルスクリプトを実行する必要があります。どのfilter_var SANITIZEマクロを削除する必要がありますか?シェル実行時の問題不要な文字のように.etc.etcPHPのシステムでシェルスクリプトを呼び出すためのフィルタvar
これは私のコードのテストの例です、今私はテストのためのvarをハードコードしました..ありがとう!
私はPHPでシステムを呼び出すためにこれらのvarをフィルタリングし、シェルスクリプトを実行する必要があります。どのfilter_var SANITIZEマクロを削除する必要がありますか?シェル実行時の問題不要な文字のように.etc.etcPHPのシステムでシェルスクリプトを呼び出すためのフィルタvar
これは私のコードのテストの例です、今私はテストのためのvarをハードコードしました..ありがとう!
escapeshellarg()は文字列の前後に一重引用符を追加し、既存の一重引用符を引用/エスケープして文字列をシェル関数に直接渡し、単一の安全な引数として扱わせます。この関数を使用して、個々の引数をユーザ入力からくるシェル関数にエスケープする必要があります。シェル関数には、exec()、system()およびバックティック演算子が含まれます。
http://php.net/manual/en/function.escapeshellarg.php
これを通して、あなたのコマンドラインパラメータを渡し、あなたは安全だ;)また、私はあなたが(execを使用してお勧めします)の代わりにシステムの()あるいはもしくはshell_exec()あなたのことができるようになりますので、スクリプトからの戻り値だけでなく、使用したいテキスト出力を取得します。
これが他のユーザーによってトリガーされる可能性がある場合は、この方法を使用しません。
非常に危険です。特に、複数のパラメータとサニタイズルールがあります。
これを可能にする組み込みのサニタイズフィルタはありません。しかし、あなたはFILTER_CALLBACK
と、このようなescapeshellarg
とそれ偽物次のことができます。
$var = filter_var($input, FILTER_CALLBACK, array('options' => 'escapeshellarg'));
私は私のGET VARS上にescapeshellarg使用して、私のようなシェルコマンドを入れた場合、エコーCIAO。シェルはエコーを実行します!それは十分ではない、私は他のチェック...任意の提案が必要ですか? – andrea
それからいとこをチェックしてください。http://php.net/manual/en/function.escapeshellcmd.phpこのコマンドライン全体をコマンドラインに渡します;)お返事ありがとう – smassey
! – andrea