bat*_*tad 17 php sanitization header http-headers
是否有任何需要对用户数据进行的转义例程才能在PHP的header()函数中使用它?
例如,对于MySQL,我在将数据发送到数据库之前对用户数据运行mysql_real_escape_string(),并在HTML中输出我运行htmlspecialchars()...两者都包含在我自己的自定义函数中,首先进行其他处理.
但是对于PHP的header()函数,需要做什么?我有什么危险的角色可以逃脱吗?
我正在尝试做这样的事情......将查询字符串附加到标题()重定向到不同的页面
if ( strlen($_SERVER['QUERY_STRING']) > 0) {
$query_string = '?'.$_SERVER['QUERY_STRING'];
}
header('Location: http://domain.com/activate.php'.$query_string);
exit();Run Code Online (Sandbox Code Playgroud)
任何人都获得了有关header()函数需要转义的内容的任何信息?冒号和分号字符似乎对header()语句非常关键.我应该逃避吗?
irc*_*ell 19
不,只要您使用PHP> = 4.4.2(如果在PHP4上)和> = 5.1.2(如果是PHP5),就没有什么可以保护自己的.
请参阅文档header().特别:
此功能现在可以防止一次发送多个标头,以防止标头注入攻击.
所以没有必要为位置标题转义任何东西.如果您使用的是早期版本,则需要转义所有\r和\n字符(以防止标头注入).
另外,不要 urlencode查询字符串.它将打破正在发送的数据的语义含义.只需将其全部附加.
| 归档时间: |
|
| 查看次数: |
4557 次 |
| 最近记录: |