$_SERVER['HTTP_ORIGIN'] 不起作用
Posted
技术标签:
【中文标题】$_SERVER[\'HTTP_ORIGIN\'] 不起作用【英文标题】:$_SERVER['HTTP_ORIGIN'] doesn't work$_SERVER['HTTP_ORIGIN'] 不起作用 【发布时间】:2017-05-05 00:11:39 【问题描述】:当我使用$_SERVER['HTTP_ORIGIN']
时。
echo $_SERVER['HTTP_ORIGIN'] ;
返回 注意:未定义索引:第 12 行 D:\xampp\htdocs\safe\test.php 中的 HTTP_ORIGIN
怎么了?!
【问题讨论】:
What is Wrong?!
使用 html sn-ps 显示 PHP 代码是错误的。
只是表示请求页面时没有提供Origin
标头。
你用它做什么?也许我们可以提出一种替代方法。
这是因为您的浏览器没有发送原始请求。所以 php 不发送响应的来源。
使用if(isset($_SERVER['HTTP_ORIGIN'])) echo $_SERVER['HTTP_ORIGIN'];
【参考方案1】:
HTTP_ORIGIN
既不是由所有浏览器发送的,也不是安全可信的。你真的应该使用:
echo $_SERVER['HTTP_REFERER'];
这个问题发生在你身上,因为那个特定的浏览器没有设置原点。你也不信任HTTP_REFERER
。它和前者一样不安全。
【讨论】:
只要您不信任浏览器设置的 HTTP_REFERER。可以伪造,或者经常被各种软件清空以确保安全 我认为我们同意。 @PraveenKumar 请查看此答案,甚至删除它,因为它具有误导性。 @PedroLobito 我猜您是否可以根据最新标准更新答案,或者我将其删除... :) @PraveenKumar 从来没有一种安全的方式使用HTTP_REFERER
,因为它很容易被欺骗。我会删除答案。以上是关于$_SERVER['HTTP_ORIGIN'] 不起作用的主要内容,如果未能解决你的问题,请参考以下文章