留言板别直接输出用户提交的内容,写段JS就把所有访客跳去赌博站

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

新手做留言板功能,用户提交的留言内容直接存数据库,前台输出的时候不做转义,有用户在留言里写了一段JS脚本,其他用户打开留言板,直接弹广告、偷cookie。XSS防护几个要点:第一,用户提交的所有内容,存数据库之前先转义,把尖括号、脚本标签过滤掉,别直接把用户写的代码存进去;第二,前台输出用户内容的时候,全部做HTML转义,把< >这些字符转成普通字符,就算用户写了脚本,浏览器也当成普通文字显示,不会执行;第三,别在后台留言管理页面直接渲染用户提交的HTML,不然管理员打开后台,脚本直接在管理员浏览器里跑,后台权限都被偷;第四,给cookie设置HttpOnly属性,就算真有脚本执行,也偷不到cookie内容。

我之前的博客留言板,没做XSS过滤,有人在留言里写了跳转赌博站的脚本,所有打开留言板的用户直接被跳走,花了半天给所有输出加了转义,之后再也没出现过这种问题。很多新手觉得用户写的留言都是普通文字,不会有脚本,其实黑产的爬虫24小时扫所有留言板,把XSS脚本写进去,批量挂广告,花几分钟做转义过滤,比被挂广告后再清理省太多事。

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

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

0
回帖

留言板别直接输出用户提交的内容,写段JS就把所有访客跳去赌博站 期待您的回复!

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

取消确定

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