防止直接访问 PHP 页面

2024-04-16

如何防止我的用户直接访问仅用于 ajax 调用的页面?

在 ajax 调用期间传递密钥似乎是一种解决方案,而没有密钥的访问将不会被处理。但制造钥匙也很容易,不是吗?查看源代码的诅咒...

p/s: 使用 Apache 作为网络服务器。

编辑:为了回答为什么,我的index.php中有jQuery ui选项卡,这些选项卡内是带有脚本的表单,如果直接访问它们将无法工作。为什么用户想要这样做,我不知道,我只是认为通过防止在没有验证脚本的情况下直接访问表单,我会更加用户友好。


无法保证他们通过 AJAX 访问它。直接访问和AJAX访问都来自客户端,因此很容易被伪造。

你为什么要这样做?

如果是因为 PHP 代码不太安全,请使 PHP 代码更安全。 (例如,如果您的 AJAX 将用户 ID 传递到 PHP 文件,请在 PHP 文件中编写代码以确保这是正确的用户 ID。)

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

防止直接访问 PHP 页面 的相关文章

随机推荐

  • 如何将我的 app.yaml 迁移到 2.7?

    我正在将我的 gae 应用程序迁移到 python 2 7 这是我的新 app yaml application webfaze version main runtime python27 api version 1 threadsafe
  • 如何修复 ReactforwardRef(Menu) Material UI?

    我创建了非常简单的自定义组件MuiMenu and MuiMenuItem 但是当我尝试显示这些组件时 我看到一个错误 如下所示 Function components cannot be given refs Attempts to ac
  • 如何对歌曲中的专辑进行排序?

    所以我的问题是 当我尝试对专辑进行排序时 专辑标题和专辑艺术是错误的 我尝试对专辑 ID 进行排序 但这并不能解决问题 因为专辑 ID 显然与对艺术进行排序无关 当我忽略排序时 一切都是正确的 但是当我尝试对它们进行排序时 专辑名称与专辑封
  • 更改表的列名后,所有单元和功能测试均出错

    我重命名了表的 3 列 突然我的所有单元和功能测试都抛出了相同的错误 即它们找不到具有旧列名称的表 即使对与我修改的表无关的模型的测试也会抛出相同的错误 Example 54 Error test should show user User
  • 即时编译与提前编译相比有何优点?

    我最近一直在思考这个问题 在我看来 最大的优势是JIT编译或多或少应该归因于中间格式 而抖动本身并不是生成代码的好方法 那么主要就是这些pro JIT我经常听到的编译参数 即时编译可实现更大的可移植性 这不是中间格式的原因吗 我的意思是 一
  • 使用 CSS/jQuery 的响应式字体大小

    我想在 div 内创建响应文本 I tried jquery 文本填充 https github com jquery textfill jquery textfill and FlowType http simplefocus com f
  • 有没有办法检测手机和手持设备上的3G和2G连接速度?

    有没有办法检测手机和手持设备上的 3G 和 2G 连接 就像如果我想在用户使用 3G 时提供高端网站 如果用户使用 2G 则提供高度优化的版本 在 Android 2 2 中 有一个 JS 对象可以实现这一点 您可以根据连接类型编写一个供
  • 如何在 PHP 中将字符串的第一个字符变为小写?

    我无法使用斯特洛尔 https www php net manual en function strtoupper php因为它会影响所有角色 我应该使用某种正则表达式吗 我收到一个字符串 它是产品代码 我想在不同的地方使用此产品代码作为搜
  • 寻找最接近的斐波那契数列

    我正在尝试解决一个更大的问题 并且我认为该程序的重 要部分花费在低效的计算上 我需要计算给定数字 N 的区间 P Q 其中 P 是 到 N 的最小斐波那契数 目前 我正在使用地图来记录斐波那契数的值 查询通常涉及搜索最多 N 的所有斐波那契
  • 使用按钮更新 Matplotlib 中的注释

    我正在修改 Matplotlib 文档中的按钮示例 以在图中添加文本注释 我的问题是 我无法找到每次按下按钮时更新注释的正确方法 因为注释重叠 我尝试了remove 方法 但不起作用 import numpy as np import ma
  • 使用 Core Reporting Google API v4 (Java) 显示超过 10000 行

    我正在使用以下方式获取 Google Analytics 数据核心报告 API v4 https developers google com analytics devguides reporting core v4 对于给定的维度和指标组
  • 数据访问库返回数据集或对象

    在使用调用存储过程的库时是否存在普遍共识 返回数据集或使用 sqldatareader 填充自定义对象 数据传输对象的序列化成本是否低于数据集 就我个人而言 我将 SqlDataAdapter 与 DataTables 一起使用 数据表有W
  • 如何原子地否定 std::atomic_bool?

    朴素的布尔否定 std atomic bool b b b 似乎不是原子的 我怀疑这是因为operator 触发转换为普通bool 如何原子地执行等效的否定 下面的代码说明了朴素的否定不是原子的 include
  • openh264 - bEnableFrameSkip=0,比特率无法控制

    关于 opencv H 264 有很多问题 但是 他们都没有给出详细的解释 我在 Visual Studio 中使用 openh264 openh264 1 4 0 win32msvc dll 以及 opencv 3 1 使用启用 ffmp
  • Shiny:如何检测选择了哪些手风琴元素?

    我有一个 R Shiny 在那里server R输出大量动态生成的UI对象 而不是处理数百个对象input来处理 我想我可以使用bs accordion https ijlyttle github io bsplus articles ov
  • 如何使用 kotlin 通过 TCP 连接发送和接收字符串

    我在 Windows 上有一个 TCP 服务器 我想在服务器和我的 Android 设备之间发送和接收文本字符串 我花了很多时间搜索使用 Kotlin 的示例 但没有找到任何有用的代码 所以我现在只能创建套接字并连接 fun connect
  • 使用 LINQ to XML 将 HTML 标记保留在 XML 中

    我有一个 xml 文件 我使用 LINQ to XML 从中提取 html 这是该文件的示例
  • 将 char* 传递给需要 unsigned char* 的方法

    我正在开发一些带有 SDK 的嵌入式设备 它有一个类似的方法 MessageBox u8 u8 u8 is typedefed unsigned char when I checked 但我在他们的示例中看到调用如下代码 MessageBo
  • 将数据库(.mdf 文件)附加到 SQL Server 时出错

    我在附加数据库时遇到问题DBName mdf到网络 SQL Server 管理员可以手动附加数据库 但如果我尝试 我会收到以下错误消息 数据库 DBName 无法升级 因为它是只读的 具有只读文件或用户无权修改某些文件 使数据库或文件可写
  • 防止直接访问 PHP 页面

    如何防止我的用户直接访问仅用于 ajax 调用的页面 在 ajax 调用期间传递密钥似乎是一种解决方案 而没有密钥的访问将不会被处理 但制造钥匙也很容易 不是吗 查看源代码的诅咒 p s 使用 Apache 作为网络服务器 编辑 为了回答为