gpt4 book ai didi

PHP 通过 file_get_contents 获取调用你的脚本的站点

转载 作者:行者123 更新时间:2023-12-02 06:22:09 27 4
gpt4 key购买 nike

我的网站上托管了一个 PHP 脚本,它根据传递的 GET 参数输出一个值。

其他站点通过带有 url 的 PHP 函数 file_get_contents 从他们自己的 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
}

当我使用 file_get_contents 时,我没有设置引荐来源网址,但如果我使用从页面点击链接到带有上述代码的脚本,引荐来源网址会正确显示。

我是否使用了错误的函数 (file_get_contents) 来调用外部脚本,有人可以建议正确的函数吗?或者这应该有效吗?

非常感谢任何帮助。谢谢

最佳答案

请记住,HTTP“Referer” header 是一个可选 header ——网站无需将其发送给您,而且很容易被伪造。如果您真的只希望某些人使用您的资源,最好使用某种形式的身份验证。

通常 Referer:由 Web 浏览器发送,但没有必要——例如,如果 referer 是安全站点,它们就不会发送它。使用 PHP file_get_contents() 技术上无论如何都没有 referer;您不会从任何地方被“推荐”。

请考虑:

  • 通过 IP 地址锁定(但请记住,多个域可以共享一个 IP,并且域的 IP 可以更改。)
  • 使用某种形式的身份验证(最好不是以纯文本形式传输密码的身份验证!)

在决定应用正确的安全措施时,您应该考虑您需要该服务的安全程度,以及可能攻击它的威胁。

关于PHP 通过 file_get_contents 获取调用你的脚本的站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7405030/

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