徳丸本の中の人 OWASP Japanアドバイザリーボード EGセキュアソリューションズ代表 IPA非常勤職員 脆弱性診断、WAFの販売・導入、セキュリティコンサルティングをやっています。https://t.co/F0kveu1nJM
ご質問の回答は「バイナリセーフとは何か」という定義によると思います。PHPのfopenは5.3.4以降でファイル名にNULLバイトを含む場合にエラーになるようになりましたが、これが「バイナリセーフ」になったかは議論の分かれるところだと思います。一方、「ファイル名に対するNULLバイト攻撃ができなくなった」なら正しいと思います。一方、PHPのbasename関数は、PHP 5.0.0以降バイナリセーフになりましたが、NULLバイト攻撃の一般的なケースで考えるとむしろ危険になりました(これ、わかりますか? わからなければ追加で質問してください)。つまり、とある関数がバイナリセーフであることと、NULLバイト攻撃ができない、というのは違うのです。
ギフトサポートする
継続サポートするとコメントを閲覧、投稿することができます。
2日前
3日前
4日前
ご質問の回答は「バイナリセーフとは何か」という定義によると思います。PHPのfopenは5.3.4以降でファイル名にNULLバイトを含む場合にエラーになるようになりましたが、これが「バイナリセーフ」になったかは議論の分かれるところだと思います。一方、「ファイル名に対するNULLバイト攻撃ができなくなった」なら正しいと思います。
一方、PHPのbasename関数は、PHP 5.0.0以降バイナリセーフになりましたが、NULLバイト攻撃の一般的なケースで考えるとむしろ危険になりました(これ、わかりますか? わからなければ追加で質問してください)。つまり、とある関数がバイナリセーフであることと、NULLバイト攻撃ができない、というのは違うのです。