给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
作者:bea
这个问题是mod_encoding已经先一步处理了url,而PHP又解了一次 例如 x.php?s=%252B%2F%2B%2F 那么$_GET['s']得到的是 +// urlencode("+")=%2B urlencode("%2B")=%252B 所以,这个url被decode了两次 第一次是 urldecode("%252B%2F%2B%2F")=%2B/+/ urldecode("%2B/+/")=+//解决办法 修改httpd.conf将 <IfModul
这个问题是mod_encoding已经先一步处理了url ,而PHP又解了一次
例如
x.php?s=%252B%2F%2B%2F
那么$_GET['s']得到的是
+/ /
urlencode("+") = %2B
urlencode("%2B") = %252B
所以,这个url被decode了两次
第一次是
urldecode( "%252B%2F%2B%2F") = %2B/+/
urldecode( "%2B/+/") = +/ /
解决办法
修改httpd.conf 将
<IfModule mod_encoding.c>
EncodingEngine on
这一段配置移到需要的vitualHost里去,这个不能和php脚本并存。
有用 | 无用
例如
x.php?s=%252B%2F%2B%2F
那么$_GET['s']得到的是
+/ /
urlencode("+") = %2B
urlencode("%2B") = %252B
所以,这个url被decode了两次
第一次是
urldecode( "%252B%2F%2B%2F") = %2B/+/
urldecode( "%2B/+/") = +/ /
解决办法
修改httpd.conf 将
<IfModule mod_encoding.c>
EncodingEngine on
这一段配置移到需要的vitualHost里去,这个不能和php脚本并存。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 什么是MVC,好东西啊
- php中的MVC模式运用技巧
- php下实现折线图效果的代码
- php下的权限算法的实现
- php 中的str_replace 函数总结
- 解决php中Cannot send session cache limiter 的问题的方法
- escape unescape的php下的实现方法
- mysql 全文搜索 技巧
- mysql 搜索之简单应用
- mysql 字段类型说明
- Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
- PHP与SQL注入攻击[三]
- PHP与SQL注入攻击[二]
- PHP与SQL注入攻击[一]
- 使用Xdebug调试和优化PHP程序之[1]
- php下用GD生成生成缩略图的两个选择和区别
- 15种PHP Encoder的比较
- dede全站URL静态化改造[070414更正]
- 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法