gpt4 book ai didi

PHP 清理用户数据以用于 header() 函数

转载 作者:IT王子 更新时间:2023-10-29 00:12:29 26 4
gpt4 key购买 nike

是否需要对用户数据执行任何转义例程才能在 PHP 的 header() 函数中使用它?
例如,对于 MySQL,我在将用户数据发送到数据库之前对用户数据运行 mysql_real_escape_string(),对于 HTML 中的输出,我运行 htmlspecialchars()... 两者都包含在我自己的自定义函数中,以便首先进行一些其他处理。

但是对于PHP的header()函数,需要做什么呢?是否有任何我应该转义的危险字符?

我正在尝试做这样的事情......将查询字符串附加到 header() 重定向到不同的页面

if ( strlen($_SERVER['QUERY_STRING']) > 0) {
$query_string = '?'.$_SERVER['QUERY_STRING'];
}
header('Location: http://domain.com/activate.php'.$query_string);
exit();

有人知道 header() 函数需要转义什么吗?冒号和分号字符对于 header() 语句似乎总是非常重要。我应该逃避那些吗?

最佳答案

不,只要您使用 PHP >= 4.4.2(如果在 PHP4 上)和 >= 5.1.2(如果在 PHP5 上),您就不需要采取任何措施来保护自己。

参见 the docs for header() .具体来说:

This function now prevents more than one header to be sent at once as a protection against header injection attacks.

因此,没有必要为位置 header 转义任何内容。如果您使用的是早期版本,则需要转义所有 \r\n 字符(以防止 header 注入(inject))。

此外,不要 urlencode 查询字符串。它将破坏所发送数据的语义。只需完整附加即可。

关于PHP 清理用户数据以用于 header() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5677737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com