学习--xss和csrf

redux vuex是单页应用跨页面状态管理 一个html

多页应用 跨页面数据传递 多个html

xss和csrf是什么 攻击特点 如何防范

xss 跨站脚本攻击 cross site script

是指攻击者在网站上注入恶意的客户端代码,通过恶意脚本对客户端网页进行篡改,从而在用户浏览网页的时候,对用户浏览器进行控制活着获取用户隐私数据的一种攻击方式。

攻击者对客户端网页注入的恶意脚本一般包括,javascript,有时也会包含html和flash。有很多种方式进行xss攻击,但它们的共同点为:将一些隐私数据像cookie,session发送给攻击者,将受害者重定向到一个由攻击者控制的网站,在受害者的机器上进行一些恶意操作。

xss攻击可以分为三类:反射型(非持久型),存储型(持久型),基于DOM

1:反射型:发出请求时,xss代码出现在url中,作为输入提交到服务器端,服务器端解析后响应,xss代码随响应内容一起传回给浏览器,最后浏览器解析执行xss代码。这个过程像一次反射,所以叫反射型xss。

2:存储型:存储型和反射型的差别就在于,具有攻击性的脚本被保存到了服务器端(数据库,内存,文件系统)并且可以被普通用户完整的从服务的取得并执行,从而获得了在网络上传播的能力。

3:DOM型,即基于DOM或本地 XSS攻击:其实是一种特殊类型的反射型XSS:其实是一种特殊类型的反射型xss,它是基于DOM文档对象模型的一种漏洞。可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。

防范:

1)输入过滤,避免XSS的方法之一只要是将用户输入的内容进行过滤。对所有用户提交的内容进行可靠的输入验证,包括对url、查询关键字、post数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。(客户端和服务器都要。)

2)输出转义

3)使用HttpOnly Coolie

将重要的cookie标记为httponly,这样的话当浏览器向web服务器发起请求的时候就会带上cookie字段,但是在js脚本中却不能访问这个cookie,这样就避免了xss攻击利用js的document.cookie获取cookie.

现代web开发框架vue react 等,在设计的时候就考虑了xss攻击对html插值进行了更进一步的抽象、过滤和转义,我们只要熟练正确的使用它们,就可以在大部分情况避免xss。

CSRF

cross-site request forgery

跨站请求伪造:伪造请求,冒充用户在站内的正常操作。我们知道,绝大多数网站是通过cookie等方式辨识用户身份(包括使用服务器端session的网站,因为session id也是大多保存在cookie里面的),再予以授权的。所以要伪造用户的正常操作,最好的方法是通过xss或链接欺骗等途径,让用户在本机(即拥有身份cookie的浏览器端)发起用户所不知道的请求。

可以这样理解,攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至购买商品,虚拟货币转账。

防范CSRF

主要是在服务器端做,

1服务器中验证请求头,refer字段

2:加token  主流

3:加验证码  比较大的成本。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值