jquery - 在 MYSQL 语句中使用来自 div id 的数据是否安全?

标签 jquery mysql html

我正在使用 Jquery 开发一个非常简单的 1 层评论系统/Ajax/PHP/MYSQL .该页面最初显示一条主要评论,用户可以回复该评论。

<div id="com100">Parent Comment</div>

有人建议我使用父评论的 div id 值 com100,作为 MYSQL 中的父 ID INSERT每个相应回复的声明。

我的问题:这样安全吗?不能 div's任何用户都可以更改 id 值吗?可能会插入与错误评论相关的回复,或者更糟?

正在验证数据,bindParam正在被使用。我更关心回复存储在错误的父评论下。任何建议表示赞赏。

最佳答案

主要问题实际上是如何将 div ID 传递到后端。据推测,使用您正在使用的技术,您将使用 Javascript/jQuery 获取 ID,然后使用标准 POST 请求将其发送到服务器。在这种情况下,易受攻击的是 POST 请求。有人将能够阅读您的代码,查看数据是如何发布到服务器的,然后使用不同的 ID 伪造相同的调用。

到那时,在客户端,您通常可以依赖 DIV 的 ID——使用您的 jQuery 在不验证的情况下获取它们,假设它们是正确的,服务器生成的值,等等在。 ID 的验证应该在服务器端完成,在 POST 进来之后。ID 有意义吗?那个评论存在吗?是否允许经过身份验证的用户在该父 ID 下发表评论等。

因此,不要担心人们会更改文档中的 DIV ID,因为无论如何,这只是一种复杂且不太可能实现的方法,可以通过伪造的 POST 请求实现。但是,一旦 POST 进入,确实验证您的数据服务器端。

从根本上说,您在客户端进行多少验证并不重要,因为攻击者不必使用任何您的代码来伪造POST 请求。他们只需要知道您要发布的 URL 和 POST 变量的名称,通过阅读您的代码或简单地拦截您的有效 POST 请求,他们将始终可以轻松获得这些信息。 您可以在客户端验证真正的用户错误,甚至是您自己代码中的错误,但您应该在服务器端验证安全性和数据完整性。

关于jquery - 在 MYSQL 语句中使用来自 div id 的数据是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6677231/

相关文章:

jquery - 如何使用 jQuery 的 "data"取消选中复选框?

jquery - 光滑的网格 - 例子?

java - 如何从 Java 小程序更新我的 MySQL 数据库?

html - 使用 :after and :before in IE7 的替代方法是什么

javascript - 为什么我不能使用 onClick 在 jQuery $(document).ready 函数中执行函数?

javascript - 具有顶部导航和左侧导航的自定义母版页

mysql - 如何在 sequelize 中按聚合函数排序

php - 如何在 php 中动态地将图像从 mysql 数据库插入到 jquery slider 中

html - 如何在 IE 中为选择选项设置 css 位置

javascript - 如何将 HTML 中的值附加到 jQuery 脚本