【问题标题】:Preventing calls to php scripts from a localhost or from another domain防止从本地主机或其他域调用 php 脚本
【发布时间】:2015-02-04 08:00:15
【问题描述】:

我有一个包含一些 php 脚本的网站,其中一些是在 ajax 中调用的。
我想阻止一些恶意用户尝试从其他站点或虚拟 localhost 站点调用和使用这些脚本。

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

我也想过过滤调用者的IP地址,但我猜如果你能欺骗“域名”,你也能欺骗本地IP。

那么,我该怎么做才能让这个安全工作正常呢?

【问题讨论】:

  • 您对使用来自其他网站的这些文件的主要顾虑是什么?
  • @AlexandruGuzinschi:我理解你的问题,请参阅我的编辑。目的是防止它们被其他站点使用。在发布之前,有些词已经从我的问题中消失了......

标签: php ajax security cross-domain localhost


【解决方案1】:

你指的是Cross Site Request Forgery

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

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

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

阅读资源:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 2023-03-24
    • 1970-01-01
    • 2014-01-05
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多