カテゴリー
アーカイブ
2020/06/04 / PHP escapeshellarg への1件のコメント
以前から気にはなっていた PHP の escapeshellarg を調べてみた.
次の様なコードがうまくない.
<?php
$param = ($_REQUEST['input']) ;
$cmd_to = "cal " . $param ;
system ( $cmd_to ) ;
?>
次の様な入力を意図しているが,
…/cal/?input=2020

後ろに次のコマンドを付加されるとうまくない.
…/cal/?input=2020;ls -l

cal 2020 が表示された後 ls -l が動作している.
「コマンドインジェクション」と呼ぶらしく,検索するといろいろと出てくる.
コマンドの引数にあたる部分に escapeshellarg を使用するか,$param をチェックするする必要がある.
$cmd_to = "cal " . escapeshellarg ( $param ) ;
Is this 投稿 useful?
Useful
Useless
0 of 0 people say this 投稿 is useful.