防止对 PHP 的虚假循环 ajax 请求

2024-01-20

在我的网站上,我为博客文章创建了评论部分。用户可以编写评论,单击按钮,AJAX 请求将发送到包含 JSON 数据的 PHP。 PHP 将处理和验证数据,然后将其插入数据库。成功后,将从数据库中检索所有评论,并使用 JQuery 重新加载页面的所有评论。

问题是任何人都可以使用浏览器的控制台伪造 AJAX 请求,填写自己的 JSON,然后将请求发送到 PHP。如果这样做,所发生的一切就是我的客户端验证毫无用处。服务器端验证仍然有效。然而,还有一个更大的问题。

for(var i = 0; i < 10000; i++) {
    //ajax request
}

用户可以非常轻松地立即将成千上万条记录插入我的数据库中。

有人对我如何防止此类事情发生有任何建议吗?它必须涉及在服务器端创建用户无法猜测的内容,并在 AJAX 请求期间以某种方式对其进行检查。我只是不确定具体该怎么做。

谢谢您的帮助。


在这方面确保您安全的唯一方法是添加验证码。

这将防止大量/自动发帖。一种可能使用的库是安全图像 https://www.phpcaptcha.org/。它易于使用和集成。您可以使用 AJAX 工具在 10 分钟内运行它。

如果可能的话,依赖其他方式(例如 cookie 或某种客户端验证)是有风险的。例如KA_lin https://stackoverflow.com/users/476543/ka-lin的解决方案可能会在 5 分钟内受到损害:恶意用户可以发送伪造的 cookie,该 cookie 的页数始终为 0,因此始终允许发帖。或者更糟糕的是,他可以创建一个小程序,将其发布到您的页面而不发送任何 cookie。上面的代码每次都会创建一个新的cookie并接受他的帖子......

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

防止对 PHP 的虚假循环 ajax 请求 的相关文章

  • 返回视图作为 JSON 对象的一部分

    我有一个应用程序只加载一次完整视图 我这样做的原因并不重要 重要的是 其余内容只会以部分视图的形式返回 除了一些内容之外 我还有一些 JSON 对象 我想通过每个 AJAX 请求在服务器之间来回传递 有没有办法返回一个 JSON 对象 并将
  • Yii2 组件将数据传递给 __construct

    我有一个库 我想将其用作组件 在配置文件中我这样设置 components gt superLib gt class gt SuperLib construct gt first second Maybe Yii 2 have proper
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • 从链接打开本地文件夹

    如何通过单击任何链接打开本地文件夹视图 我尝试了很多选择 例如 a href Open folder a or a Open folder a or a Open folder a 解决方案 启动可下载链接 以下内容适用于所有浏览器 但一如
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • 在反应中访问回调内的 event.target

    我有以下课程片段 constructor props super props this timeout null search e gt clearTimeout this timeout this timeout setTimeout f
  • 致命错误 - 未找到“Mongo”类

    我正在尝试执行此操作 但我收到以下错误 致命错误 在 C wamp www 中找不到类 Mongo Info PHP 5 38 MongoDB mongodb win32 i386 2 0 2 MongoDB PHP 驱动程序 mongo
  • 了解 Document.createElement()

    我在用着GWT及其底层DOM能力 我基本上想要实现的是 Have a div包含一些文本的元素 其中一些文本将被包围span元素 span 元素可相互拖动并提供上下文菜单 New span元素可以由最终用户动态创建 它可能是这样的 在应用程
  • 如何将MathJax公式转换为img

    Mathjax 现在在我的项目中运行良好 但有一个问题 有没有办法将MathJax的公式 纯html和css 转换成img文件 我可以保存 MathJax 可以配置为生成 SVG 看http docs mathjax org en late
  • javascript - 如何获取对象名称或关联数组索引名称?

    我有一个像这样的 JSON 对象 var list name1 element1 value1 name2 element1 value2 如何提取所有 nameX 字符串值 例如 假设我想将它们连接在一个字符串中输出 例如 name1 n
  • 从 $i 获取值,顺序被打乱

    for i 0 i lt count name i some output ommited td td
  • 触发 jQuery UI 滑块事件

    如何触发更改事件jQuery UI 滑块 http docs jquery com UI Slider 我以为会是 slider trigger slidechange 但这没有任何作用 完整的示例脚本如下
  • jQuery Mobile + Admob:轮换?

    我使用 jQuery Mobile 框架创建了一个移动应用程序 所有页面都在index php中加载 使用 div 在每个页面的页脚中 我添加了Admob代码 div div div
  • 如何缩短 PHP if 语句?

    我有一个 if 语句 我需要将单个字符串与许多不同的选项进行比较 我在下面发布的代码非常清楚地表明了我的意思 我知道有两种方法可以做到这一点 但另一种甚至更长 那么 是否有任何函数可以以更短的方式实现类似的功能 我的要求可能看起来很愚蠢 但
  • 通过 Facebook 图 api 点赞帖子

    你好 我对 facebook PHP SDK 没有什么问题 我想通过 facebook PHP SDK 点赞帖子或其他内容 我正在执行此代码 我认为它应该是正确的 但显然它不起作用 给定的错误代码是的 PHP SDK不知道这种POST请求
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h
  • 如何从 html 字符串向 jQuery DataTable 添加多行

    我有一个 jQuery DataTable 我想向其中添加 html tr 行 这些行以 html 字符串的形式出现 我可以使用标准 jQuery 将它们添加到表中 但这意味着它们绕过 DataTable 对象 并在重新排序表时丢失 要使用
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro
  • JavaScript 阶乘防止无穷大

    我一直在 JavaScript 中使用这个函数来计算阶乘数 var f function factorial n if n 0 n 1 return 1 if f n gt 0 return f n return f n factorial

随机推荐

  • 使用opengl进行真正的等角投影

    有没有简单的方法进行等角投影 I mean 真正的等角投影 http en wikipedia org wiki Isometric projection 不是一般的正交投影 只有当单位 X Y 和 Z 向量的投影长度相等且它们之间的角度恰
  • WCF 中的并发如何工作?

    我是WCF和SOA的新手 我刚刚开始研究这些 我有一个理论上的疑问 客户端 A 已调用服务 并且逻辑当前正在服务器上执行 当逻辑正在执行时 来自客户端 B 的另一个调用会进入同一服务 此时客户端 A 正在执行的逻辑发生了什么 该服务如何设法
  • 使用 getter 样式方法名称将业务逻辑添加到域类

    我正在尝试向 grails 域类添加一个方法 例如 class Item String name String getReversedName name reverse 当我尝试使用 grails 控制台加载应用程序时 出现以下错误 导致
  • WWDC 2010 示例代码 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在哪里可以下载 WWDC 2010 代码示例 我是一名注册的 iPhone 开发人员 但似乎无法在 Apple 网站上找到示例 或者更简单
  • Angular:strictTemplates - 如何正确设置模板中的布尔值和数字?

    I set strictTemplates true并在 HTML 模板中使用以下内容
  • Seaborn 热图 pandas 对 isnull 的计算

    生成数据帧的一系列计算 以提供 NaN 占行总数的百分比 如下所示 data df isnull sum len df 100 RecordID 0 000000 ContactID 0 000000 EmailAddress 0 0000
  • “this”语法如何工作?

    这条线是 this attr id replace button 相当于这个 this attr id replace button since this始终包含对object of invocation 这确实取决于where你调用该代码
  • Pip 通过需求文件安装单个包的多个额外依赖项

    一些包 例如DVC https dvc org doc install linux install with pip允许您安装额外的依赖项以使用附加功能 安装单个额外的依赖项 无论是通过命令行还是在requirements txt 你只需使
  • 如何从 jquery 手风琴中删除活动轮廓?

    我正在使用 Jquery 手风琴 活动链接有一个轮廓 我尝试过使用CSS accordion a focus outline none accordion a active outline none font weight bold and
  • 如何突出显示 UITextView 的文本的一部分?

    我想做的是 如果我的详细视图被调用 我想仅突出显示文本的一部分UITextView元素 让我们说一下里面的文字UITextView is blatextbla 然后我只想动态突出显示text or late或用户想到的任何内容 我怎样才能做
  • 在 Node.js 中使用“网页”Phantom 模块

    我正在尝试将 PhantomJS 脚本包装在 node js 进程中 phantom 脚本从命令行提供的参数中获取 url 并输出 pdf 与 pahntom 安装中包含的 rasterize js 示例非常相似 我的幻像脚本工作正常 只是
  • 如何强制 Emacs 超时?

    我在 emacs 中经常使用 TRAMP 然而 有时服务器会宕机 流浪汉会等待超时 通常是在做了之后C x f在 ido 模式下打开一个新文件 我必须等待一段令人烦恼的漫长时间 有没有一种简单的方法可以告诉 TRAMP 超时并让 ido 模
  • 在流星中导入 svg 文件

    我正在开发一个使用 Meteor React 作为前端和后端的项目 对于前端 UI 我使用 element react https eleme github io element react en US quick start https
  • Matlab如何绘制平滑的等高线图?

    我想用 2D 格式的 2 个变量表示数据 该值由颜色表示 2 个变量作为第 2 个轴 我正在使用轮廓函数来绘制我的数据 clc clear load dataM mat cMap jet 256 set the colomap using
  • 刷新用户函数 t-SQL 的元数据

    我正在做一些 T SQL 编程 并且在我的数据库上定义了一些视图 这些天数据模型仍在变化 我定义了一些表函数 有时我故意使用 select from MYVIEW 在这样的表函数中返回所有列 如果视图 或表 发生变化 函数就会崩溃 我需要重
  • 滑动导航抽屉不处理菜单项android的点击

    我正在尝试在应用程序中使用滑动导航抽屉 然而 它似乎没有处理 OnItemClick 方法 当我点击一个项目时没有任何反应 我怎样才能让它工作 谢谢 主要活动 protected void onCreate Bundle savedInst
  • C++ 编译时子字符串

    我有非常大的代码库 它使用 FILE 广泛用于日志记录 但是 它包含完整路径 这是 1 不需要的 2 可能会发生安全违规 我正在尝试编写编译时子字符串表达式 最终以这个解决方案 https blog galowicz de 2016 02
  • 高级类型的辅助模式

    编辑 这是问题的一个更简单的表述 使用Foo作为一个例子Aux模式其中does work Foo is a simple Aux pattern type trait Foo A B type Out object Foo type Aux
  • Python 的“unittest”缺少“assertHasAttr”方法,我应该使用什么来代替?

    在众多的断言方法中Python的标准unittest package https docs python org 3 library unittest html assertHasAttr 奇怪的是缺席了 在编写一些单元测试时 我遇到了一种
  • 防止对 PHP 的虚假循环 ajax 请求

    在我的网站上 我为博客文章创建了评论部分 用户可以编写评论 单击按钮 AJAX 请求将发送到包含 JSON 数据的 PHP PHP 将处理和验证数据 然后将其插入数据库 成功后 将从数据库中检索所有评论 并使用 JQuery 重新加载页面的