用户提交内容别只在前端校验,后端不转义,直接存进数据库,所有访问用户都要中招

9年前 (2018-06-04)阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值27950
  • 级别管理员
  • 主题5590
  • 回复0
楼主

新手做用户留言、评论功能,前端做个必填校验,后端直接就把用户输入存数据库,结果被人提交一段脚本,所有访问页面的用户全跳转到赌博站,其实后端数据校验只要做几个点,就能挡住这种XSS攻击。第一,后端必须做输入校验,别信前端的校验,用户随便改个前端代码就能绕过,所有用户输入的内容,后端要把HTML标签全转义,存数据库的时候直接过滤尖括号,就算用户提交了script标签,也会变成纯文本,不会被浏览器执行;第二,所有输出到页面的用户内容,全部转义之后再显示,别直接把用户存的内容输出到HTML里,不然用户提交的脚本直接在浏览器里跑;第三,用户提交的手机号、邮箱,做格式校验,别让用户随便输一串字符就存进去,后台统计的时候全是垃圾数据;第四,提交的内容长度做限制,别让用户一次性提交几M的文本,把数据库撑满。

我之前做留言板,只做了前端校验,被人提交了一段跳转脚本,三天里所有打开网站的用户全被转到赌博站,清了半天才清完。很多新手觉得校验只要前端做就行,后端根本不处理,结果用户绕开前端,直接把恶意内容提交进数据库,所有用户都中招。真的,用户提交的内容,后端必须做转义和过滤,别直接存直接输出,这是最基础的安全操作,几行代码就能做完。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/3244.html

0
回帖

用户提交内容别只在前端校验,后端不转义,直接存进数据库,所有访问用户都要中招 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息