防止从本地主机或其他域调用php脚本

时间:2014-12-06 03:18:20

标签: php ajax security cross-domain localhost

我有一个带有一些php脚本的网站,其中一些是在ajax中调用的 我想阻止某些恶意用户访问我的网站,他们会尝试从其他网站或虚拟本地主机网站调用和使用这些脚本。

我考虑过滤域名,但是使用EasyPHP和虚拟主机管理器等工具,您可以运行一个欺骗“域名”的本地网站。

我还考虑过滤调用者的IP地址,但我想如果你可以欺骗“域名”,你也可以欺骗localhost IP。

那么,我怎么能这样做才能让这种安全工作正常?

1 个答案:

答案 0 :(得分:0)

你所指的是Cross Site Request Forgery

same-origin policy禁止从其他网站调用您的某个脚本。考虑到这一点以及AJAX请求未经服务器同意通过Cross-Origin Resource Sharing只能包含几个头的事实,您可以从PHP发送自定义HTTP头并在服务器端检查该头。如果标题丢失,很可能请求不是来自您自己的应用程序。

您还可以要求每个客户端为每个请求发送一个唯一令牌,以便获取数据。最常用的令牌方法称为Synchronizer token pattern

对于这个答案中包含的长链接列表感到抱歉,但我认为这个主题是一个微妙的主题,并且像任何安全问题一样,我认为从许多来源,尽可能多地阅读是至关重要的从不同的角度理解问题,提供可用的解决方案,并为您的用例挑选合适的解决方案。

阅读资源: