XSS - html過濾


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|\n|\r\n|\r|\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|\n|\r\n|\r|\u0085|\u2028|\u2029]]*]]></regex>
    </regexList>
</XSSConfig>

 

 

方案二:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM