服务器端验证防止数据库错误

时间:2012-07-16 14:59:29

标签: php jquery database validation

我对服务器端编码很新,目前正在设置一个站点,该站点涉及从数据库中提取对象,允许用户编辑它们,然后将这些元素重新插入到数据库中。

但是,我不确定如何通过使用开发工具来防止用户破坏数据库。

基本上元素显示在列表中,每个元素都是一个脚本。它拥有自己独特的ID和名称(不一定是唯一的)。因此,当从数据库中提取它时,名称是列表的文本,id包含在属性字段中。当他们编辑时,我从html属性中提取id并使用它来保存对数据库的任何更改。

当然,我在服务器端进行检查,以确定是否允许用户进行所有编辑。

但是,我遇到的问题是用户可以轻松打开任何形式的开发人员工具,更改脚本Id(切换或以任何方式改变它们),这肯定会损害数据库。

有人可以提供一些技巧来防止这个问题吗?我真的很感激。谢谢!

我不知道它会有什么帮助,但我的大部分代码都是使用Javascript(使用jquery和jquery ui)和php(使用CodeIgniter作为框架)。

编辑:

想象一下两个元素

Id - >标题 - >描述

5 - >您好 - >世界

6 - >再见 - >睡眠

在服务器端,这些显示为列表,还有另一种编辑值的方法。

<li data-id=5>Hello</li>
<li data-id=6>Bye</li>

有人可以加载fire bug并更改我用于查询的数据ID,比如说第一个7.或者交换两者。在这种情况下,这并不重要,但实际上更多的是我的好奇心,有什么方法可以阻止这种情况吗?

1 个答案:

答案 0 :(得分:0)

使用mysql_real_escape_string向数据库发送安全查询:

    $user_input = mysql_real_escape_string($_POST['user_input']);