一、XSS
-
XSS是Cross-site scripting,是网站应用攻击的安全漏洞攻击,是代码注入的一种。允许恶意用户将代码注入到网页上,当用户浏览页面时,嵌入其中web里面的html代码会被执行,就达到恶意攻击用户的目的。这类攻击通常包含了HTML以及用户端脚本语言。
-
XSS漏洞有三种类型:反射型、保存型和基于DOM的XSS攻击。
-
如何优化:在XSS中的跨站中,可以使用脚本注入,不信赖用户输入,对特殊字符如“<”,">"转义。
二、CSRF
- CSRF(Cross-site request forgery)是跨站请求伪造,主要是攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能做的事情,包括:以你的名义发送邮件、发信息、盗取你的账号、甚至于购买商品、虚拟货币转账。 主要造成个人隐私泄露和财产安全
- 要完成一个CSRF攻击,必须具备以下几个条件:
- 受害者已经登录到了目标网站(你的网站)并且没有退出
- 受害者有意或者无意的访问了攻击者发布的页面或链接地址
- 利用方式
- Get 请求利用
使用Get请求方式发送,主要来源于在开发系统的时候没有按照HTTP动词的正确使用方式来使用。研发人员错误的认为GET/post的使用区别仅仅在于发送请求的数据是在Body中还是在请求地址中,以及请求内容的大小不同。对于一些危险的操作比如删除文章,用户授权等允许使用GET方式发送请求,在请求参数中加上文章或用户的ID,这样就造成了只要请求地址被调用,数据就会产生修改
- post请求利用
攻击者需要伪造一个能够自动提交的表单来发送Post请求。
- 如何防范
- 只要识别出哪些请求是非正常用户主动发起的。需要在请求中嵌入一些额外的授权数据,让网站服务器能够区分出这些未授权的请求。比如在请求参数中添加一个字段,这个字段的值从登录用户的cookie或者页面中获取的。攻击者伪造请求的时候是无法获取页面中与登陆用户有关的一个随机值或者用户当前cookie中的内容的。