我对服务器端编码相当陌生,目前正在建立一个站点,该站点涉及从数据库中提取对象,允许用户编辑它们,然后将这些元素重新插入到数据库中。
但是,我不确定如何防止用户通过使用开发工具破坏数据库。
本质上,元素显示在列表中,每个元素都是一个脚本。它有自己的唯一 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>
有人可以加载火虫并更改我用于查询的数据ID,例如将第一个设为7。或者两者都交换。在这种情况下,这并不重要,但实际上更多的是出于我的好奇心,有什么办法可以防止这种情况发生吗?