如何控制对http请求的响应的访问?(服务器端和客户端)


How to controll access for a response to a http request ? (server side & client side)

排除所有主要浏览器的同源策略和同步令牌模式(对所有请求进行令牌化将是一件很麻烦的事),您将如何检查请求是否直接从我的用户界面发送,而不是通过第三方发送。

例如,从iframe向youtube发送请求(我指的是src=…而不是xmlhttprequest对象),响应将是一个空白页面(他们是如何做到的。SO响应是来自iframe请求的正常内容。

就像我之前说的那样,如果请求来自可信来源,你将如何检查(最好是一些服务器端代码)?

附言:不要依赖头,idk为什么origin没有收到请求,尽管我看到他们在所有主要浏览器中都实现了origin头。某些ati间谍软件程序可以修改referer。不管怎样,这些头都不能真正被信任。但是的,这将是一个检查层。

检查$_SERVER['HTTP_REFERER'],看看它是否来自您自己的网站。

您不能真正确定用户的来源。用户代理很容易被欺骗。我认为您可以在用户界面中创建一些csrf令牌,并且只允许具有这些令牌的客户端