@windchimes
2019-05-15T10:24:58.000000Z
字数 956
阅读 358
常见的前端攻击方式
前端新知识
前端常见的攻击方式大概有6种,分别是XSS攻击,CSRF攻击,点击劫持攻击,URL跳转漏洞,SQL注入式攻击,OS注入式攻击
- XSS攻击
xss攻击(跨站脚本攻击),又分反射性攻击和持久性攻击
原理:攻击者往web页面里面插入恶意可执行网页脚本代码
反射型攻击途径:一般是通过发送带有攻击性的url地址,url被解析时,特有的恶意代码参数就会被HTML解析、执行
反射型攻击防范策略:web端j尽量保证页面的渲染内容或者渲染的数据都是来自于服务端
尽量不要从URL,document.referrer document.forms等这种DOM API中获取数据
尽量不要使用eval new Function() document.write() 等可执行字符串的方法
对传入的字符串参数做escape转义
持久型攻击途径:一般就是Form表单提交等交互功能
持久型攻击防御方法:CSP,就是开白名单,可以通过设置http的协议头Header的context-security-policy字段来实现;
前端校验用户输入的内容并对特殊字符进行转义;
后端校验前端传输的数据;
前端使用接口数据时也要对某些特殊字符进行转义;
httpOnly cookie
- CSRF攻击
跨站请求伪造,利用用户已经登录的身份,在用户不知情的情况下,以用户的名义进行攻击
攻击过程:用户已登录,并保持登录状态的情况下,访问了有危险的网站,这时就可以借由用户去攻击安全的网站
防范策略:Get请求不对数据进行修改;不让第三方网站访问用户cookie;阻止第三方网站请求接口;token;验证码;header中添加访问限制Referer,比如同源网页才允许访问等
- 点击劫持攻击
利用iframe嵌套安全网页,并把iframe设为透明,即可进行攻击
防范策略:self.location=top.location;
- URL跳转漏洞进行攻击
防范策略:
http协议头header的同源策略
- SQL注入攻击
利用SQL语句的漏洞,对其进行攻击,比如输入admin ' --
防范策略:
后端对前端的传递数据进行校验,比如利用正则
后端对某些特殊字符进行转义
后端不直接使用前端传递过来的信息
- OS注入攻击
和SQL注入同样原理,只不过其注入后操作的不再是数据库,而是用户的操作系统及各个操作软件