友人がウェブサイトのモジュールを完成させるのを手伝っています。彼のモジュールを見た第一印象から、非常に危険なものがいくつかありましたが、彼はこの方法は安全だと言っています。
コードの一部:
session_start();
if(isset($_POST['foo']))
{
$_SESSION['foo'] = $_POST['foo'];
}
if(isset($_SESSION['foo']))
{
$foo['foo'] = $_SESSION['foo'];
}
if(is_file("inc/". $foo['foo'] . "/bar.php")) {
// code
}
else {
// code
}
注 : ファイル (inc/test/bar.php) が存在します。
彼のコードをテストしたかったので、次のリクエストを送信しました。
POST :: foo => test/bar.php%00
POST :: foo => test/bar.php\0
curl_setopt($ch, CURLOPT_POSTFIELDS, 'foo=test/bar.php' . chr(0x00));
しかし、これらの方法はどれも機能しませんでした。そのコードは本当に安全ですか? また、誰かがヌルバイトを送信してセキュリティをバイパスするにはどうすればよいでしょうか。友人のコードが安全でないことを友人に証明したい.