阻止外部访问 PHP 脚本但允许 AJAX

2023-12-09

我读了很多关于 .htaccess 规则、检查标头、使用加密等的内容。但我还没有找到我想要的答案。我知道,假设服务器设置正确,您将无法使用 AJAX 访问我珍贵的 PHP 脚本。我尝试检查是否定义了一个访问变量,该变量不允许地址栏访问,但也阻止了我的 AJAX 请求。

如果我有一些用于 AJAX 调用的 PHP 脚本,有没有一种方法可以阻止来自我的域之外的地址栏访问、PHP POST(cURL 等)以及 AJAX(假设通过跨域访问限制)?


NO绝对的方式安全/可靠识别请求来自浏览器的哪个部分——地址栏、AJAX。有一种方法可以通过 User-Agent 标头识别通过浏览器/curl/等发送的内容(但不可靠)

一个快速但不太可靠的解决方案是检查以下标头。大多数浏览器将其附加到 AJAX 调用中。一定要认真研究、落实。

X-Requested-With: XMLHttpRequest

NOTE:如果资源至关重要,请勿信任客户端。您最好实施其他一些访问过滤方法。请记住,任何人都可以伪造标题!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阻止外部访问 PHP 脚本但允许 AJAX 的相关文章

随机推荐

  • C# 中有保证 FIFO 顺序的同步类吗?

    它是什么以及如何使用 我需要它 因为我有一个每秒插入数据库的计时器 并且我在计时器处理程序和主线程之间有一个共享资源 我想保证 如果计时器处理程序在插入过程中花费超过一秒 则应按顺序执行等待的线程 这是我的计时器处理程序的示例代码 priv
  • 使用 ankhsvn 更改颠覆服务器名称

    IT 已将 svn 服务器的位置移至另一个盒子 因此 所有源代码控制路径都需要更改 我找不到在 VS2010 AnkSvn 中执行此操作的位置 更改源代码控制对话框 文件 Subversion 更改源代码控制 列出了 SCC 绑定 URL
  • QT:QTableView 中行的内部拖放,这会更改 QTableModel 中行的顺序

    I want to perform a sort of rows in QTableView so that the underlying TableModel would have its data sorted too 如果我没有记错的
  • C Linux应用程序的带宽限制

    我可以尝试采取哪些方法来遏制send sendto 循环内的函数 我正在为我的网络创建一个端口扫描器 我尝试了两种方法 但它们似乎只在本地工作 当我在我的家用计算机上测试它们时它们工作 但当我尝试在另一台机器上测试它们时 它不想创建适当的节
  • 盗链保护

    我编写了这个简单的代码来防止从我的 php 下载文件中盗链我的文件 if strpos SERVER HTTP REFERER www domain com 0 redirect index php header Location redi
  • jQuery - 将鼠标悬停在父 div 上时播放视频

    我正在创建一个视频库 其中包含悬停时播放短视频的缩略图 我已经能够让它们在将鼠标悬停在视频本身上时播放 但我需要它们在将鼠标悬停在视频的父 div 上时播放 到目前为止 这是我的尝试 HTML div class thumbail div
  • Android:如何与另一个 Activity 进行垂直 Activity 过渡

    我的第一个 Activity 中有一个 ListView 当我点击里面的一个项目时 我启动另一个活动 好吧 但现在我想修改这两个活动之间的转换 Activity1 gt Activity2 Activity2 从下到上的垂直过渡 渐进 当我
  • 为什么调用react setState方法不会立即改变状态?

    我正在阅读Forms的部分reactjs文档并尝试使用此代码来演示onChange usage JSBIN var React require react var ControlledForm React createClass getIn
  • 脚本未在 templateurl 中运行

    这是我的角度 js 文件 测试 js 文件 var app angular module angleapp controller MainController scope function scope scope test hi all d
  • 如何使用占位符获取用户输入?

    我目前正在用 Rust 编写一个简单的记事本应用程序 在主循环期间 要求用户插入 删除或更改行 当用户更改行时 我想预先填充该行的内容 以便用户可以更轻松地编辑行 像这样 下划线代表终端光标 用户选择该行后尚未进行任何输入 Content
  • 将插件保留在项目中和配置文件中之间的区别

    谁能解释一下下面的功能吗 A 实际上下面的代码对我有用 但我不明白为什么我们需要使用下面的Maven 战争插件
  • Android 中是否可以共享音频输入(麦克风)流?

    我正在编写一个作为后台服务运行的应用程序 记录和分析从麦克风录制的音频 当我的应用程序运行时 我无法使用其他使用麦克风的应用程序 例如电话 录音等 我的问题是 有没有办法在 Android 中共享麦克风流 也许通过使用 NDK 如果没有 是
  • 穷人的 C#“词法分析器”

    我正在尝试用 C 编写一个非常简单的解析器 我需要一个词法分析器 它可以让我将正则表达式与标记关联起来 这样它就可以读取正则表达式并返回符号 看来我应该能够使用正则表达式来完成实际的繁重工作 但我看不到一种简单的方法来做到这一点 一方面 正
  • 为什么 Twitter Bootstrap 需要多个按钮类?

    使用以下命令制作主按钮Twitter 的 Bootstrap 库 您需要使用两个 CSS 类 如下所示 class btn btn primary 当他们可以让 btn primary 包含 btn 包含的所有 CSS 时 为什么他们要这样
  • 如何使用rails服务器在Angular中获取索引数据

    我从 Angularjs Rails 后端开始 尝试从服务器获取用户数据 相当于controller index轨道上的动作 我已经遵循了几个教程 发现这段代码是最清晰的 问题1 如何正确地将角度模块链接到视图中 2 如何使用本文中的 ty
  • ASP.NET Core:从 GET 重定向到 POST

    我想打电话MarriageById作为 GET 像这样 var url MarriageById id id 但我也想拥有一个ActionResult Marriage Marriage marriage 在显示视图之前会进行一些处理 这第
  • 为什么使用 Prism EventAggregator 时未调用我的 Subscribe 方法?

    我正在学习棱镜 几个小时后我就遇到了一个问题 订阅事件时 订阅方法没有被调用 我在用Prism and Autofac 在下面的简化示例中 主视图模型 Publish dupa 事件被称为ctor 然后单击按钮更新窗口被打开 在窗口的后端创
  • 在 VBA 中编程多个 .FindNext

    我对VBA相对缺乏经验 但通常可以完成简单的任务 我目前在使用 Find 函数时遇到问题 我知道 excel 没有能力执行两次 finds 但我在为第二次查找编写循环时遇到问题 到目前为止我的代码在这里 Dim j As Integer D
  • eclipse 没有为其中开发的任何应用程序生成 apk 文件吗?

    我一直在使用 eclipse IDE 在 android 中开发一些应用程序 所有这些应用程序在模拟器上运行良好 但 eclipse 没有生成它们的 apk 文件 并且我无法在任何设备中安装应用程序 此外 在模拟器上运行应用程序时 它不会给
  • 阻止外部访问 PHP 脚本但允许 AJAX

    我读了很多关于 htaccess 规则 检查标头 使用加密等的内容 但我还没有找到我想要的答案 我知道 假设服务器设置正确 您将无法使用 AJAX 访问我珍贵的 PHP 脚本 我尝试检查是否定义了一个访问变量 该变量不允许地址栏访问 但也阻