Gga*_*Gga 2 php file-get-contents referrer
我的网站上托管了一个PHP脚本,它根据传递的GET参数输出一个值.
其他站点通过PHP函数file_get_contents使用url和get params从他们自己的PHP脚本中调用此脚本,并仅返回请求的值.
我试图只允许某些域访问此脚本,并一直使用HTTP_REFERER来检查谁在调用脚本.
if (isset($_SERVER['HTTP_REFERER'])) // check if referrer is set
{
echo $_SERVER['HTTP_REFERER']; // echo referrer
}
else
{
echo 'No referrer set'; // echo failure message
}
Run Code Online (Sandbox Code Playgroud)
我在使用file_get_contents时没有设置引用者,但是如果我使用从页面到具有上述代码的脚本的单击链接,则引用者正确显示.
我使用错误的函数(file_get_contents)来调用外部脚本,有人可以建议正确的或者这应该工作吗?
任何帮助非常感谢.谢谢
请记住,HTTP" Referer "标题是一个可选标题 - 不需要站点将其发送给您,并且它可以很容易伪造.如果您真的只希望某些人使用您的资源,那么最好使用某种形式的身份验证.
通常Referer:由Web浏览器发送,但不需要它 - 例如,如果引用者是安全站点,他们将不会发送它.使用PHP file_get_contents(),无论如何技术上都没有引用; 你不是从任何地方被"引用"的.
相反,请考虑:
您应该考虑在确定要应用的正确安全性时,您需要这种服务的安全性以及可能会攻击它的威胁.