如果我使用预定义URL的数组进行验证,$ _SERVER ['HTTP_REFERER']是危险的吗?

eri*_*c01 1 php security xss

我正在为我的应用程序做一个登录页面.当用户想要访问"myaccount.php"但他没有登录时,他会被重定向到login.php.

登录成功后,我希望他被重定向到$_SERVER['HTTP_REFERER'],这将是我的应用程序的各个页面.

我在论坛上看到['HTTP_REFERER']可能很危险.

但是,如果我创建一个类似('myaccount.php','mycart.php'等等)的数组并将此数组进行比较,这$_SERVER['HTTP_REFERER']将保护我免受恶意使用此功能的影响吗?

Mic*_*ski 5

在这种情况下,重定向并不是特别危险,$_SERVER['HTTP_REFERRER']因为如果最终用户做了恶意的事情,他最终会被恶意注入的引用者重定向.只要您在每个脚本的开头检查权限,用户就无法访问您不应该访问的站点区域(如管理控制台).但是,如果您未能检查每个脚本的权限,并且用户制作了错误的引荐来源标头,则可以将其用于指向您不应该访问的网站区域.

但总的来说,HTTP_REFERRER并不是特别危险的来源.它不能依赖于设置和保存正确的信息.

  • +1说得好.对于提问者,如果您真的关心恶意URL,听起来您只需检查您将重定向到的引用网址是否属于您的域.如果没有,则将它们转发到某个默认位置. (2认同)