我的网站完全转换为使用utf-8,(mysql,http头文件,PHP mb_string等)。什么是从我的PHP网站过滤无效的utf8?
我做了一些渗透测试,并试图将无效的utf POST到其中一个脚本(使用BurpSuite)。
但是,当我发布无效的utf,只是十六进制转储$ _POST var时,我发现在我尝试使用mb_detect_encoding验证它之前,无效的utf序列已经过清理。
这对我来说听起来像个好消息,但我想知道哪一层正在转换POST数据?
它是Content-Type HTTP Header的一个副作用,也许我的web服务器正在做它(lighttpd)。或者它是PHP自己做的,当填充$ _POST?
我期望看到无效的utf hexdumped,让我自己消毒。
有关更多信息,请参阅框架?你使用哪个PHP版本?我们可以看到你的代码样本等 –
我们可以看到你发布的内容和你回来的东西吗? – Brad
不,没有框架。只需要vanilla PHP和来自burpsuite的原始HTTP请求,然后PHP脚本只需十六进制转储一个$ _POST [“formvalue”]。没有预先处理$ _REQUEST/$ _ POST或在我的代码中进行任何用户输入,然后进行十六进制转储 - 现在整理一个示例... – carpii