编程语言
首页 > 编程语言> > php – 由客户端设置的HTTP_REFERER

php – 由客户端设置的HTTP_REFERER

作者:互联网

我听说HTTP_REFERER可能是欺骗性的.我有2个站点,第一个站点与第二个站点联系,第二个站点使用HTTP_REFERER来验证请求是否来自第一个站点.

如果我从第一个站点收到第二个站点的虚假请求,并且我知道没有提出此请求,我应该怎么想?第三个网站是为所有用户欺骗http_ref,还是个人从浏览器设置中欺骗它?我想知道客户端/浏览器或网站本身是否设置/欺骗了http_ref?

解决方法:

它是客户发送的信息.它通常设置为您单击链接的页面.

它也绝对可以欺骗.您可以通过在PHP cURL请求中设置HEADER来自己完成.

curl_setopt( $ch, CURLOPT_HTTPHEADER, array(
        'Host: www.google.com',
        'Referer: http://google.com/', 
        'FaKeHEADER: ThisIsFakeButItWillBeSentAnyways'));  

接收服务器将在标题中看到它们,即使它从未从google.com发送过.您还可以欺骗您在标题中看到的所有其他内容(用户代理,Cookie等).

除非你确切知道每个源的每个应该是什么样子,否则你将很难检测到欺骗性标题.您可以做的最好的事情是使用IP并限制您接受的Header类型(例如,如果页面只能使用GET请求,则拒绝所有POST请求).即便如此,如果有人想要欺骗你,那么他们很可能也不会知道.

如果你试图确保你的两个站点之间的连接,你应该限制连接不仅仅是一个标题,这根本不安全.

编辑:你甚至可以发送真正的假标题.我更新了示例以显示我的意思.有些网站使用自定义(如假的)标头来传递身份验证.

标签:php,security,http-referer
来源: https://codeday.me/bug/20190726/1543585.html