私のウェブサイトは完全に utf-8 (mysql、http ヘッダー、PHP mb_string など) を使用するように変換されています。
いくつかの侵入テストを行っており、無効な utf をスクリプトの 1 つに (BurpSuite を使用して) POST しようとしています。
しかし、無効な utf を投稿すると、$_POST 変数を 16 進ダンプするだけで、mb_detect_encoding を使用して検証する前に、無効な utf シーケンスが既にサニタイズされていることがわかります。
これは私にとって朗報のように思えますが、どのレイヤーが POST データを変換しているかを知りたいですか?
これは Content-Type HTTP ヘッダーの副作用ですか、おそらく私の Web サーバー (lighttpd) が実行しています。それとも、$_POST を入力するときに PHP 自体がそれを行っているのでしょうか?
無効な utf が 16 進ダンプされることを期待していたので、自分でサニタイズする必要がありました。