我对服务器端编码还比较陌生,目前正在建立一个站点,其中包括从数据库中提取对象,允许用户编辑它们,然后将这些元素重新插入到数据库中。
但是,我不知道如何防止用户通过使用开发工具破坏数据库。
基本上元素显示在一个列表中,每个元素都是一个脚本。它有自己的唯一id和名称(不一定是唯一的)。因此,从数据库中提取时,名称是列表的文本,id包含在属性字段中。当它们被编辑时,我从html属性中提取id并使用它保存对数据库的任何更改。
当然,我会检查服务器端,以确定是否允许用户所做的所有编辑。
但是,我遇到的问题是,用户可以很容易地打开任何形式的开发工具,更改脚本id(切换它们或以任何方式更改它们),这肯定会损害数据库。
有人能给我一些技巧来防止这个问题吗?我真的很感激。谢谢!
我不知道这会有什么帮助,但我的大部分代码是javascript(使用jquery和jquery ui)和php(使用codeigniter作为框架)。
编辑:
想象两个元素
标识->标题->说明
5->你好->世界
6->再见->睡觉
在服务器端,它们以列表的形式显示,并且有另一种编辑值的方法。

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

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

最佳答案

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

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

关于php - 服务器端验证,防止数据库错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11506972/

10-12 17:37
查看更多