zoukankan      html  css  js  c++  java
  • XSS

    JS 根据白名单过滤HTML
    http://jsxss.com/zh/index.html

    方案一:

    java的一个方案, 可以参考:  http://winnie825.iteye.com/blog/1170833

    用xml保存一些过滤信息

    <?xml version="1.0" encoding="UTF-8"?>
    <XSSConfig>
        <!-- 是否进行header校验 -->
        <isCheckHeader>false</isCheckHeader>
        <!-- 是否进行parameter校验 -->
        <isCheckParameter>true</isCheckParameter>
        <!-- 是否记录日志 -->
        <isLog>true</isLog>
        <!-- 是否中断请求 -->
        <isChain>false</isChain>
        <!-- 是否开启特殊字符替换 -->
        <replace>true</replace>
        <!-- 是否开启特殊url校验 -->
        <isCheckUrl>true</isCheckUrl>
        <regexList>
            <!-- 匹配含有字符: alert( ) -->
            <regex><![CDATA[.*[A|a][L|l][E|e][R|r][T|t]\s*\(.*\).*]]></regex>
            <!-- 匹配含有字符: window.location = -->
            <regex><![CDATA[.*[W|w][I|i][N|n][D|d][O|o][W|w]\.[L|l][O|o][C|c][A|a][T|t][I|i][O|o][N|n]\s*=.*]]></regex>
            <!-- 匹配含有字符:style = x:ex pression ( ) -->
            <regex><![CDATA[.*[S|s][T|t][Y|y][L|l][E|e]\s*=.*[X|x]:[E|e][X|x].*[P|p][R|r][E|e][S|s]{1,2}[I|i][O|o][N|n]\s*\(.*\).*]]></regex>
            <!-- 匹配含有字符: document.cookie -->
            <regex><![CDATA[.*[D|d][O|o][C|c][U|u][M|m][E|e][N|n][T|t]\.[C|c][O|o]{2}[K|k][I|i][E|e].*]]></regex>
            <!-- 匹配含有字符: eval( ) -->
            <regex><![CDATA[.*[E|e][V|v][A|a][L|l]\s*\(.*\).*]]></regex>
            <!-- 匹配含有字符: unescape() -->
            <regex><![CDATA[.*[U|u][N|n][E|e][S|s][C|c][A|a][P|p][E|e]\s*\(.*\).*]]></regex>
            <!-- 匹配含有字符: execscript( ) -->
            <regex><![CDATA[.*[E|e][X|x][E|e][C|c][S|s][C|c][R|r][I|i][P|p][T|t]\s*\(.*\).*]]></regex>
            <!-- 匹配含有字符: msgbox( ) -->
            <regex><![CDATA[.*[M|m][S|s][G|g][B|b][O|o][X|x]\s*\(.*\).*]]></regex>
            <!-- 匹配含有字符: confirm( ) -->
            <regex><![CDATA[.*[C|c][O|o][N|n][F|f][I|i][R|r][M|m]\s*\(.*\).*]]></regex>
            <!-- 匹配含有字符: prompt( ) -->
            <regex><![CDATA[.*[P|p][R|r][O|o][M|m][P|p][T|t]\s*\(.*\).*]]></regex>
            <!-- 匹配含有字符: <script> </script> -->
            <regex><![CDATA[.*<[S|s][C|c][R|r][I|i][P|p][T|t]>.*</[S|s][C|c][R|r][I|i][P|p][T|t]>.*]]></regex>
            <!-- 匹配含有字符: 含有一个符号: "  -->
            <regex><![CDATA[[.&[^"]]*"[.&[^"]]*]]></regex>
            <!-- 匹配含有字符: 含有一个符号: '  -->
            <regex><![CDATA[[.&[^']]*'[.&[^']]*]]></regex>
            <!-- 匹配含有字符: 含有回车换行 和 <script> </script> -->
            <regex><![CDATA[[[.&[^a]]|[|a| | | |u0085|u2028|u2029]]*<[S|s][C|c][R|r][I|i][P|p][T|t]>.*</[S|s][C|c][R|r][I|i][P|p][T|t]>[[.&[^a]]|[|a| | | |u0085|u2028|u2029]]*]]></regex>
        </regexList>
    </XSSConfig>

    方案二:

    http://blog.csdn.net/catoop/article/details/50338259

  • 相关阅读:
    JvisualVM、JMC监控远程服务器
    MVC学习笔记3
    MVC学习笔记2
    菜鸟级appium 必看
    关于redis一些问题记录
    git和github的区别
    VMware快照
    LR创建数据源读取excel
    mysql 5.7.18 源码安装笔记
    IDEA 配置Junit4
  • 原文地址:https://www.cnblogs.com/chencidi/p/5921216.html
Copyright © 2011-2022 走看看