Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果我使用预定义的URL数组';$#服务器[';HTTP#u REFERER';]是否危险;什么是验证?_Php_Security_Xss - Fatal编程技术网

Php 如果我使用预定义的URL数组';$#服务器[';HTTP#u REFERER';]是否危险;什么是验证?

Php 如果我使用预定义的URL数组';$#服务器[';HTTP#u REFERER';]是否危险;什么是验证?,php,security,xss,Php,Security,Xss,我正在为我的应用程序做一个登录页面。当用户想转到“myaccount.php”但尚未登录时,他会被重定向到login.php 登录成功后,我希望他被重定向到$\u服务器['HTTP\u REFERER'],这将是我应用程序的各个页面 我在论坛上读到['HTTP\u REFERER']可能很危险 但是,如果我创建一个类似('myaccount.php'、'mycart.php'等…)的数组,并将此数组与$\u服务器['HTTP\u REFERER']进行比较,这会保护我免受此功能的潜在恶意使用吗?

我正在为我的应用程序做一个登录页面。当用户想转到“myaccount.php”但尚未登录时,他会被重定向到login.php

登录成功后,我希望他被重定向到
$\u服务器['HTTP\u REFERER']
,这将是我应用程序的各个页面

我在论坛上读到
['HTTP\u REFERER']
可能很危险


但是,如果我创建一个类似('myaccount.php'、'mycart.php'等…)的数组,并将此数组与
$\u服务器['HTTP\u REFERER']
进行比较,这会保护我免受此功能的潜在恶意使用吗?

在这种情况下,重定向到
$\u服务器['HTTP\u REFERER']
因为如果最终用户做了一些恶意的事情,他最终会被恶意地重定向到推荐人。只要您在每个脚本的开头检查权限,用户就不可能访问您站点中他不应该访问的区域(如管理控制台)。但是,如果您未能检查每个脚本的权限,并且用户制作了一个虚假的Referer标头,则可以使用它直接进入您的站点中不应访问的区域


但一般来说,
HTTP\u referer
并不是一个特别的危险源。无法依靠它来设置和保存正确的信息。

在这种情况下,重定向到
$\u服务器['HTTP\u referer']
并不是特别危险,因为如果最终用户做了恶意的事情,他只会被恶意地重定向到referer。只要您在每个脚本的开头检查权限,用户就不可能访问您站点中他不应该访问的区域(如管理控制台)。但是,如果您未能检查每个脚本的权限,并且用户制作了一个虚假的Referer标头,则可以使用它直接进入您的站点中不应访问的区域

但一般来说,
HTTP\u referer
并不是一个特别的危险源。它只是不能依靠设置和保存正确的信息

我在论坛上读到
['HTTP\u REFERER']
可能很危险

我认为与此相关的两个最常见的缺陷是和

但是,如果您只允许基于一组内部的白名单URL进行重定向,就像您建议的那样,那么我看不出有什么问题

我在论坛上读到
['HTTP\u REFERER']
可能很危险

我认为与此相关的两个最常见的缺陷是和

但是,如果您只允许基于一组内部的白名单URL进行重定向(如您所建议的),那么我看不出有问题。

$\u服务器[“HTTP\u REFERER”]并不危险-它只是由攻击者控制的。它不会伤害你,除非你相信它会向某人授予额外的权限(例如,不要假设刚从successful-login.php登录的人已经成功登录!)

重定向用户不会向用户授予任何特殊权限,因此将攻击者重定向到攻击者控制的字符串不会以任何方式损害服务器的安全。

$\u server[“HTTP\u REFERER”]并不危险-它只是由攻击者控制的。它不会伤害你,除非你相信它会向某人授予额外的权限(例如,不要假设刚从successful-login.php登录的人已经成功登录!)


重定向用户不会向用户授予任何特殊权限,因此,将攻击者重定向到攻击者控制的字符串不会以任何方式损害服务器的安全。

“我在论坛上读到,['HTTP\u REFERER']可能很危险。”哪个论坛?你读了什么?
HTTP\u REFERER
不可靠。危险吗?这取决于如何使用不可靠的客户端提供的信息。老实说,我发现它在应用程序的“主要”部分几乎没有什么用处,所以我很想质疑它的用途……如果你在http和https之间移动,Referer会被剥离,一些防火墙/代理会出于隐私原因而剥离它。其他框架通常会在登录页面的链接中添加returnUrl参数,并在重定向“我在论坛上读到,['HTTP_REFERER']可能有危险”之前使用基于白名单的验证。哪个论坛?你读了什么?
HTTP\u REFERER
不可靠。危险吗?这取决于如何使用不可靠的客户端提供的信息。老实说,我发现它在应用程序的“主要”部分几乎没有什么用处,所以我很想质疑它的用途……如果你在http和https之间移动,Referer会被剥离,一些防火墙/代理会出于隐私原因而剥离它。其他框架通常会在登录页面的链接中添加returnUrl参数,并在重定向+1之前使用基于白名单的验证。对于询问者来说,如果你真的担心恶意URL,听起来你可以简单地检查你将重定向到的引用URL是否属于你的域。如果没有,那么将它们转发到默认位置。大家好,谢谢你们的回复。当你谈到检查权限时,它是在PHP级别上的吗,比如检查isset($\u会话…)@eric01是的,这就是我所指的-检查当前登录的用户(通过PHP会话或db,无论什么)是否允许查看他登录的页面。+1说明得很好。对于询问者来说,如果你真的担心恶意URL,听起来你可以简单地检查你将重定向到的引用URL是否属于你的域。如果没有,那么将它们转发到默认位置。大家好,谢谢你们的回复。当你谈到检查权限时,它是在PHP级别上的吗,比如检查isset($\u SESSION…)@eric01是的,这就是我所指的-检查当前登录到我们的