当前位置: 首页 > 面试题库 >

仅AJAX访问

费明诚
2023-03-14
问题内容

我最近开始用PHP编写大量AJAX支持的脚本代码,事实是,也可以直接使用AJAX调用访问的文件,如何禁用它?


问题答案:

您不能可靠地阻止这种情况的发生。真正的关键是不要将某人直接访问此文件作为安全问题-计划这样做是可能的,您将处于一个安全得多的地方。

有人可能会推荐看起来像这样(或相似)的代码:

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) 
     && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    // more code here
}

但是,事实是HTTP标头很容易被欺骗,并且不是保护代码的手段。在一段时间的繁忙站点上进行测试时,我注意到这些标头实际上并不是那么可靠。



 类似资料:
  • 我试图利用WordPress的admin-ajax特性来为一个插件构建一个动态管理面板选项集。从本质上讲,一旦从下拉菜单(Select/option menu)中选择了一个选项,PHP函数就会对下拉菜单进行排序,并显示更多下拉菜单,这些下拉菜单位于下拉菜单的上方。我从一个简单的返回开始,我希望在后面使用这个返回,但是我似乎无法将文本打印出来而不遇到问题。 我设置的AJAX显示了200状态,但响应从

  • 我已经在云运行Anthos上部署了一个服务。只有通过VPC专用连接才能访问该服务,并且不能向外部公开。我有一个虚拟机,试图访问服务,但无法在内部IP上连接。只能通过具有有效域的GKE集群外部IP访问此服务吗?Anthos部署提供的选项只允许通过内部访问是没有意义的“此服务部署在中,只能从Kubernetes集群内部访问。您可以使用设置从桌面到集群的隧道” gke-workloads-anthos-

  • 问题内容: 我正在尝试使用以下方法将json数据从客户端发送到我的服务器: 我得到一个。但是,当我使用json对象时会被发送。 它仅对PATCH不起作用 后端是Django,即时通讯使用的应用程序是tastypie 问题答案: 首先,检查您是否使用了最新版本的jQuery库: 旧版本直接限制未知方法(PATCH是新方法)。 我已经在jQuery 1.7上进行过测试-PATCH方法可以正常工作。 其

  • 给出以下发出ajax调用的jQuery代码: 我遇到的问题是,用户可以在URL上手动输入test.html并在屏幕上看到响应。如何避免这种情况?

  • 问题内容: 有些脚本只能通过ajax使用,并且我不希望用户直接从浏览器运行这些脚本。我使用jQuery进行所有ajax调用,并将所有ajax文件保存在名为ajax的文件夹中。 因此,我希望创建一个htaccess文件来检查ajax请求(HTTP_X_REQUESTED_WITH)并拒绝该文件夹中的所有其他请求。(我知道可以伪造http标头,但我想不出更好的解决方案)。我尝试了这个: ReWrite

  • 问题内容: 问题总结 通过表单身份验证使用Chrome登录后。作为returnUrl的登录页面将在不访问服务器的情况下使我的jQuery ajax错误。的和。(几乎没有用)。在尝试使用Firefox且无法复制问题后,我开始认为Chrome是问题所在。清除缓存,关闭和重新打开均无法解决。我能找到的最接近的文章是这个。jQuery Ajax-状态码0? 但是,URL是相对的, 较长的描述 jQuery