留言板别直接输出用户提交的内容,写段JS就把所有访客跳去赌博站
新手做留言板功能,用户提交的留言内容直接存数据库,前台输出的时候不做转义,有用户在留言里写了一段JS脚本,其他用户打开留言板,直接弹广告、偷cookie。XSS防护几个要点:第一,用户提交的所有内容,存数据库之前先转义,把尖括号、脚本标签过滤掉,别直接把用户写的代码存进去;第二,前台输出用户内容的时候,全部做HTML转义,把< >这些字符转成普通字符,就算用户写了脚本,浏览器也当成普通文字显示,不会执行;第三,别在后台留言管理页面直接渲染用户提交的HTML,不然管理员打开后台,脚本直接在管理员浏览器里跑,后台权限都被偷;第四,给cookie设置HttpOnly属性,就算真有脚本执行,也偷不到cookie内容。
我之前的博客留言板,没做XSS过滤,有人在留言里写了跳转赌博站的脚本,所有打开留言板的用户直接被跳走,花了半天给所有输出加了转义,之后再也没出现过这种问题。很多新手觉得用户写的留言都是普通文字,不会有脚本,其实黑产的爬虫24小时扫所有留言板,把XSS脚本写进去,批量挂广告,花几分钟做转义过滤,比被挂广告后再清理省太多事。
本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。
0