zoukankan      html  css  js  c++  java
  • 继续谈论XSS

    这篇文章基于上篇谈论XSS ,想说下自己工作过程中遇到的xss的问题。

    易出现XSS的场景

    1 jsonp

    说说jsonp 中也有说过,jsonp其实是很容易出现安全问题的。由于jsonp的callback是由参数指定的,而必须在response中返回,所以这里的jsonp很容易出现的就是XSS漏洞了。服务端要切记着对这个callback进行处理,比如可以使用白名单机制,或者使用过滤黑名单。我个人一般使用的是强制callback为数字、英文单字和点。

    关于jsonp很容易出现的还有个UTF-7 XSS的漏洞,简单来说UTF-7XSS基本条件就是XSS的漏洞代码会在头部返回,浏览器会自动将网页的字符编码解读为UTF-7。从而避过过滤机制。当然这个对于白名单过滤是没有用的。

    2 DOM XSS

    比如页面中有这么个脚本:

    <html>
    Hi
    <script>
    var pos=document.URL.indexOf("name=")+5;
    document.write(document.URL.substring(pos,document.URL.length));
    </script>
    <br>
    Welcome to our system
    </html>

    这里是会将document.url打在页面的,如果name的参数传递<script>alert(1);</script>那么就是一个xss漏洞了。

    这种js引发的DOM漏洞其实现在很多浏览器已经能自动修复了。

    3 接口

    接口返回的数据往往是json或者xml,一般认为返回的数据不会显示在html上面,所以很有可能不会使用诸如htmlspecialchars等特殊字符转义处理,但是往往所有接口都可以将返回的数据输出在浏览器上的。所以对于json和xml的输出也需要注意下。

    4 iframe

    比如 如何根据iframe内嵌页面调整iframe高宽续篇 中说的,使用iframe来自适应高度,也是可能会出现xss的,而这个xss解决就简单多了。直接使用白名单,将参数直接过滤了

    5 管理后台

    不要以为管理后台可以草率处理,管理后台正是持久性xss的战场之一。管理后台返回的html参数请使用htmlspecialchars返回,

  • 相关阅读:
    Py 获取 Flash Player amf 数据
    字符串出现表情符解决方案(超超超超超级猛)
    常用 JS HOOK 代码段
    atob方法替换方案
    conda httperror解决办法
    requests content-length进行校验了怎么办!
    tensoreflow安装教程(亲测可用)
    Python 程序运行时CPU和内存高解决思路
    Python免安装保姆级教程
    Xpath剔除不需要的标签节点
  • 原文地址:https://www.cnblogs.com/yjf512/p/3465920.html
Copyright © 2011-2022 走看看