关于避免审查元素时,修改数据和提交数据,造成恶意审查修改的方法总结
来源:互联网 发布:罗生门电影简介知乎 编辑:程序博客网 时间:2024/06/07 19:19
作为一名程序员或者用户,都知道在浏览器审查元素时,是可以修改数据的,如果修改数据,在提交就会造成不可预想的后果,特别是在数据安全的领域。一般查询数据都会返回记录的id,和一些关键的信息,虽然这些信息不是显然地在前端显示出来,但是一般会隐藏在input框或者一个data-的属性中,在修改,删除记录时,把id以get或者post的形式将数据传递给服务端,诺任意修改了id的值,就会恶意误删数据(可能是别人的数据也可能是自己的数据),所以必须要进行有效的避免。
本人总结两个方法,通过多层验证,防止恶意修改数据提交。
(1)对于返回来的数据,比如删除,有一个链接http://host/delete?id=2&states=1,如果用户恶意修改id的值,改为3,然而我们没有做任何的处理,直接讲述get过去,发生的后果就是会删除一条不该删除的数据,造成一个很严重的后果。但是如果是正常点击删除的话,是不会有什么问题的。所以我们必须要避免这种情况
解决方法:在返回数据时,将关联的数据MD5加密,作为一个密钥key值返回,在服务端生成一个key=md5($id.$states),同时将key值也返回。则链接变成http://host/delete?id=2&states=1&key=es...rf。所以将数据传递过去的时候,会把值传过去的。在后端再比较key的值。
if(md5($id.$states)===$key){ do something}else{ die('错误');}(2)返回来的数据如果通过ajax提交,则可以在前端判断一次,在服务端在判断一次,因为高手是可以绕开前端的js的。同样是要在后端将关联的数据创建成一个密钥,同时在前端判断时,需要引入一个MD5.js的文件,用于前端MD5函数
$('button.btn-video-loadmore').on('click',function(){var page=$(this).attr('data-page');var type=$(this).attr('data-type');var key=$(this).attr('data-key');if(<span style="color:#FF0000;">hex_md5(page+type)==key</span>){var data={'page':page,'type':type};$.post('__CONTROLLER__');}else{alert('加载失败!');}});同时在服务端也得向方法一一样进行验证。
2 0
- 关于避免审查元素时,修改数据和提交数据,造成恶意审查修改的方法总结
- 防止数据恶意重复提交的方法
- 代码审查时的几点方法
- 关于微信小程序修改数据的方法
- .NET反射的定义:审查元数据并收集关于它的类型信息的能力。
- 关于代码审查的五问五答
- 关于代码审查的五问五答
- 审查
- 批量修改数据提交
- GridView + DropDownList 实现 数据的 通过审查管理
- jQuery-datatable添加和修改提交到服务器的数据
- 进行修改操作时,没有修改数据,造成的失败问题!
- 解决IE被恶意修改方法总结
- 网页审查元素
- 大表格,多Form元素的提交 判断表单数据是否有被修改过
- 提交数据到paypal时,magento的产品名修改
- 修改数据库的数据元素小技巧
- 关于代码审查的几点建议
- 如何用简单易懂的例子解释隐马尔可夫模型?
- android editText自动弹出软键盘(输入键盘)
- windows 编程
- Linux下创建管理员权限用户
- 锚标记
- 关于避免审查元素时,修改数据和提交数据,造成恶意审查修改的方法总结
- ES008-Elasticsearch+hbase整合
- git删除远程分支
- linux文件实时同步
- 启动程序广播接收器LaunchAppReceiver
- jquery操作复选框(checkbox)的12个小技巧总结
- mysqldump备份与还原数据操作
- php 字符串转时间
- Node是什么