简单描述
XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码。
造成的结果,轻微的是在网页显示中插入乱码或者js弹框或跳转,影响用户体验。严重的是获取用户的cookie值,盗取用户信息。
针对这种情况,我们可以对用户提交的数据在php端使用函数过滤掉html标签即可。使用富文本编辑器时,如:ueditor时,编辑器也会自动把用户输入的html标签转换为html实体。
特殊情况
但有一种特殊的情况:希望用户自主编辑文本的样式,而不局限于富文本提供的样式。此时会修改富文本编辑器的配置文件,使富文本编辑器在html模式下输入的代码不把html标签转换为实体;或者直接使用input框。这时候在php端就不能再使用函数把标签或者符号去掉了,如果去掉,用户自定义的css样式就无法生效。
但是若不去掉,用户可能会输入一些js或者其他代码,进行xxs攻击。此时可以调用第三的过滤工具 XXS ,对可能造成xxs攻击的标签和属性进行过滤,保证html代码的纯净
目前想到的需要过滤的标签为:script标签,form下的action属性,
若不想把script标签一棍子打死,想保留些简单的js功能,xss可以自定义script下的白面单
其他的想到再补充