前端安全—常见的攻击方式及防御方法

Cookie挟持

HTTP是无状态的协议,为了维持和跟踪用户的状态,引入了Cookie和Session。 Cookie包含了浏览器客户端的用户凭证,相对较小。Session则维护在服务器,用于维护相对较大的用户信息。可以把Cookie当成密码,而Session是保险柜。由于HTTP是明文传输,Cookie很容易被盗取,如果被盗取,别人就可以冒充你的身份,打开你的保险柜,获取你的信息,动用你的资金,这是很危险的。

Cookie和Session的关系可以看这篇:浅谈session和cookie的关系

1.危害

盗取cookie信息,冒充他人身份,盗取信息。

2.防御

  • 给cookie添加HttpOnly属性,该属性设置后,只能在http请求中传递,在脚本中,document.cookie无法获取到该cookie值,对XSS攻击有防御作用,但对网络拦截还是会泄露。

  • 在cookie中添加校验信息,这个校验信息和当前用户外置环境有些关系,比如ip、user agent等有关.这样当cookie被人劫持冒用时,在服务器端校验的时候,发现校验值发生了变化,因此会要求用户重新登录,可以规避cookie劫持。

  • cookie中session id的定时更换,让session id按一定频率变换,同时对用户而言,该操作是透明的,这样保证了服务体验的一致性。

XSS跨站脚本攻击

攻击者在web页面恶意插入HTML或script标签,当用户浏览该页面时,恶意代码就会被执行,从而达到攻击的目的。XSS利用的是用户对指定网站的信任

1.类型

  • 反射型(非持久):攻击者事先制作好攻击链接,需要欺骗用户自己去点击链接才能触发XSS代码,所谓反射型XSS就是将恶意用户输入的js脚本,反射到浏览器执行。* 储存型(持久型):会把攻击者的数据储存到服务端,攻击行为将伴随攻击数据一直存在,每当用户访问该页面就会触发代码执行。* DOM型:基于文档对象模型的漏洞。 最经典的存储型XSS漏洞是留言板,当用户A在留言板留言一段JS代码,后端未经过滤直接存储到数据库,当正常用户浏览到他的留言后,这段JS代码就会被执行,可以借此来盗取cookie。### 2.危害

  • 盗取网页浏览中的cookie值,盗用cookie实现无密码登录,盗取用户信息。

  • 劫持访问,实现恶意跳转。

  • 配合CSRF攻击完成恶意请求。

3.防御方法

  • 标签过滤,如

你可能感兴趣的:(前端,安全,网络攻击模型,安全架构,可信计算技术)