web前后端分离漏洞分析防御
漏洞分析,主要漏洞有
1、跨站脚本攻击XSS
程序 + 数据 = 结果;攻击后,数据夹杂一部分程序(执行代码),导致结果改变;
XSS攻击注入点
(a):HTML节点内容;例如:评论的时候带上脚本 (b):HTML属性 <img src="#{image}" /> <img src="1" onerror="alert('2')" /> (c):javascript代码 var data = "#{data}"; var data = "hello";alert(1);"";
防御
(a):浏览器自带的防御,这个在后台去开启,不过只能防御,在HTML中和HTML属性中的XSS攻击;
(b):显示到前台数据转义;例如脚本攻击,我们只需要将 < 和 > 以及 " 转义为代码的左右括号以及双引号,这样代码就不会执行;有两个方向
1、用户输入提交的时候;
2、显示的时候
显示的时候转义,后端把代码左右尖括号替换即可,也就是说用户代码不会被执行,只会输入什么显示什么,即便是script 标签也只会展示出来;(转义的是要显
示在前台的数据)
(c):富文本的处理:
1、黑名单模式,吧不对的标签过滤掉;例如:script 去掉;这种需要操作的太多,规则太多了;
2、白名单过滤,只允许特定的;保留部分标签和属性;
XSS共计的主要防御就是转义、替换;
CSP 内容安全策略
用于指定哪些内容可以执行;(例如:用户输入的部分变为不可执行,此时即使里面有脚本,也不会执行); CSP主要是在头部Header添加的;