`
IvanLi
  • 浏览: 605106 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XSS的关键之列表

阅读更多
 //this field are used tp escape XSS script attach
    //get all the html 4 event from http://www.w3schools.com/Html/html_eventattributes.asp
    private static final String[][] XSS_CHARS_ESCAPE = {
        //Window Events
        {"onload", "on_load"},
        {"onunload", "on_unload"},
        //Form Element Events
        {"onchange", "on_change"},
        {"onsubmit", "on_submit"},
        {"onreset", "on_reset"},
        {"onselect", "on_select"},
        {"onblur", "on_blur"},
        {"onfocus", "on_focus"},
        //Keyboard Events
        {"onkeydown", "on_keydown"},
        {"onkeypress", "on_keypress"},
        {"onkeyup", "on_keyup"},
        //Mouse Events
        {"onclick", "on_click"},
        {"ondblclick", "on_dblclick"},
        {"onmousedown", "on_mousedown"},
        {"onmousemove", "on_mousemove"},
        {"onmouseout", "on_mouseout"},
        {"onmouseover", "on_mouseover"},
        {"onmouseup", "on_mouseup"},
        //html 5 event attribute
        //from http://www.w3schools.com/tags/html5_ref_eventattributes.asp
        {"onabort", "on_abort"},
        {"onbeforeunload", "on_beforeunload"},
        {"oncontextmenu", "on_contextmenu"},
        {"ondrag", "on_drag"},
        {"ondragend", "on_dragend"},
        {"ondragenter", "on_dragenter"},
        {"ondragleave", "on_dragleave"},
        {"ondragover", "on_dragover"},
        {"ondragstart", "on_dragstart"},
        {"ondrop", "on_drop"},
        {"onerror", "on_error"},
        {"onmessage", "on_message"},
        {"onmousewheel", "on_mousewheel"},
        {"onresize", "on_resize"},
        {"onscroll", "on_scroll"},
        {"onunload", "on_unload"},

        //JS header
        {"javascript:", "java_script:"},
        {"jscript:", "j_script:"},
        {"vbscript:", "vb_script:"},
        {"<script>", "&lt;script&gt;"},
        {"</script>", "&lt;/script&gt;"},

        //IE only event
        {"onactivate","onactivate"},
        {"onafterprint","onafterprint"},
        {"onafterupdate","onafterupdate"},
        {"onbeforeactivate","onbeforeactivate"},
        {"onbeforecopy","onbeforecopy"},
        {"onbeforecut","onbeforecut"},
        {"onbeforedeactivate","onbeforedeactivate"},
        {"onbeforeeditfocus","onbeforeeditfocus"},
        {"onbeforepaste","onbeforepaste"},
        {"onbeforeprint","onbeforeprint"},
        {"onbeforeupdate","onbeforeupdate"},
        {"onbounce","onbounce"},
        {"oncontrolselect","oncontrolselect"},
        {"oncopy","oncopy"},
        {"oncut","oncut"},
        {"ondataavailable","ondataavailable"},
        {"ondatasetchanged","ondatasetchanged"},
        {"ondeactivate","ondeactivate"},
        {"onerrorupdate","onerrorupdate"},
        {"onfilterchange","onfilterchange"},
        {"onfinish","onfinish"},
        {"onhelp","onhelp"},
        {"onlayoutcomplete","onlayoutcomplete"},
        {"onlosecapture","onlosecapture"},
        {"onmouseenter","onmouseenter"},
        {"onmouseleave","onmouseleave"},
        {"onmove","onmove"},
        {"onmoveend","onmoveend"},
        {"onmovestart","onmovestart"},
        {"onpaste","onpaste"},
        {"onpropertychange","onpropertychange"},
        {"onreadystatechanged","onreadystatechanged"},
        {"onresizeend","onresizeend"},
        {"onresizestart","onresizestart"},
        {"onrowenter","onrowenter"},
        {"onrowexit","onrowexit"},
        {"onrowsdelete","onrowsdelete"},
        {"onrowsinserted","onrowsinserted"},
        {"onstart","onstart"},
        {"onstop","onstop"},
        {"ontimeerror","ontimeerror"}

    };


private static String replaceIgnoreSearchCase(String text, String searchString, String replacement) {
        if (StringUtils.isEmpty(text) || StringUtils.isEmpty(searchString) || replacement == null) {
            return text;
        }
        searchString = searchString.toUpperCase();
        final String textUperCase = text.toUpperCase();
        int start = 0;
        int end = textUperCase.indexOf(searchString, start);
        if (end == -1) {
            return text;
        }
        int replLength = searchString.length();
        int increase = replacement.length() - replLength;
        increase = (increase < 0 ? 0 : increase);
        increase *= 16;
        StringBuffer buf = new StringBuffer(text.length() + increase);
        while (end != -1) {
            buf.append(text.substring(start, end)).append(replacement);
            start = end + replLength;
            end = textUperCase.indexOf(searchString, start);
        }
        buf.append(text.substring(start));
        return buf.toString();
    }
分享到:
评论

相关推荐

    关于pdf文件xss攻击问题,配置xssFilter方法

    首先,理解XSS攻击的本质是关键。XSS攻击是通过在网页中注入可执行的脚本,当用户访问被注入脚本的页面时,这些脚本会在用户的浏览器环境中运行,从而可能执行攻击者设计的各种操作。PDF文件中的XSS攻击则是在PDF...

    XSS漏洞扫描 XSS漏洞扫描

    防止存储型XSS的关键在于对用户提交的内容进行严格的验证和转义处理。 3. DOM型XSS(DOM-Based XSS): 这种XSS与前两种不同,它不依赖服务器的响应,而是利用JavaScript的DOM(Document Object Model)解析漏洞。...

    xss_javaxss_XSS_

    在Java中,处理XSS攻击通常涉及以下几个关键步骤和策略: 1. 输入验证:首先,对所有用户输入进行严格的验证,确保其符合预期的格式。例如,如果一个字段只应接受数字,那么就应当拒绝任何包含非数字字符的输入。...

    web安全之XSS攻击demo

    防范XSS攻击的关键在于正确地处理和验证用户输入,包括: - 对用户提交的数据进行转义或过滤,确保不会插入可执行的脚本。 - 使用HTTP头部的Content-Security-Policy(CSP)来限制浏览器只执行指定来源的脚本。 - ...

    xss漏洞之进制转换

    XSS(Cross-site scripting)漏洞是现代Web应用中常见的安全问题,主要表现为攻击者通过注入恶意脚本到网页中,...总之,理解和预防XSS漏洞是Web开发中的关键环节,需要持续关注最新的攻击手段,并采取有效的防护措施。

    防止XSS攻击解决办法

    理解XSS攻击的原理和类型,结合实际应用,选择合适的防护策略,是保障Web应用安全的关键。通过Web.xml配置过滤器是其中一种简单实用的方法,但全面的安全措施应包括多个方面,以确保用户的浏览体验不受威胁。

    XSS平台网站源码.zip

    源码通常包括以下几个关键部分: 1. 用户输入处理:在任何允许用户输入的系统中,都需要对输入进行严格的过滤和转义,以防止恶意脚本被执行。源码中可能包含对用户提交数据的验证函数,如检查特殊字符、禁止HTML...

    web漏洞之XSS_TEST漏洞实践练习代码

    Web漏洞中的XSS(Cross Site Scripting)攻击是一种常见的安全问题,主要针对Web应用程序。XSS允许攻击者在用户浏览器中注入恶意脚本,从而...在实际工作中,不断更新知识,关注最新的安全动态,是防止XSS攻击的关键。

    Java防止xss攻击附相关文件下载

    以下是一些关于Java防止XSS攻击的关键知识点: 1. **使用Filter拦截器**: 在Java Web应用中,可以使用Servlet Filter来拦截和处理HTTP请求。Filter可以在请求到达目标Servlet之前对其进行预处理,检查并清理可能...

    如何寻找XSS漏洞

    无论是在服务器端还是在客户端,对所有输入进行验证和清洗,保持软件更新,以及遵循最佳安全实践,都是防御XSS攻击的关键。最后,作为用户,提高安全意识,不随意点击不明链接或下载来源不明的文件,也是保护自己免...

    xssgame.zip

    5. 漏洞利用技巧:理解如何构造有效的XSS payload,如使用`&lt;script&gt;`标签、事件处理程序、CSS注入等,是提高安全技能的关键。靶场的各个级别可能会逐步引导你掌握这些技巧。 6. 安全意识:通过参与这样的靶场,用户...

    前端开源库-xss-filters

    在"压缩包子文件的文件名称列表"中,"xss-filters-master"可能是该项目的源代码仓库主分支,包含项目的所有源文件、测试用例、文档以及可能的示例。开发者可以下载这个压缩包,解压后进行本地开发和调试,了解过滤器...

    xss特殊字符拦截与过滤

    在Java代码中,我们看到了一个关键类XssStrUtils,它提供了一个静态方法replaceHtmlCode用于处理字符串中的危险代码。在该方法中,首先对传入的content参数进行非空检查。接着,定义了一系列的事件关键词数组...

    SQL+XSS漏洞修复方案

    SQL注入和跨站脚本(XSS)是两种常见的网络安全漏洞,它们对网站的数据安全性和用户隐私构成严重威胁。在本文中,我们将深入探讨这两种漏洞的原理、危害以及如何通过核心代码修复这些问题。 首先,SQL注入是攻击者...

    XSS Encode

    **XSS Encode 知识详解** ...综上所述,XSS Encode是防止XSS攻击的关键技术,通过正确编码和防御策略,可以显著提高网站的安全性。同时,理解和使用Xsser等工具,有助于更好地进行安全测试和漏洞排查。

    XSS,RFI扫描者

    XSS(跨站脚本攻击)和...总的来说,理解XSS和RFI攻击的本质,采取有效的防御措施,并利用专业扫描工具进行定期检测,是保障Web应用安全的关键。对于开发团队来说,安全编码、定期审计和更新安全策略是不可或缺的环节。

    XSS跨站总结

    ### XSS跨站总结 #### 一、XSS跨站攻击概述 XSS(Cross-Site Scripting,...总之,XSS攻击是Web应用安全领域的重要问题之一,开发者需要不断学习和实践相关的安全技术,才能有效地保护自己的应用免受此类攻击的影响。

    xss游戏平台源码

    在分析源码时,我们需要关注以下几个关键点: 1. **数据验证与过滤**:确保所有的用户输入都经过严格的验证和过滤,以防止恶意脚本的注入。 2. **编码与解码**:正确使用编码和解码函数,如encodeURIComponent()和...

    互联网公司通用XSS解决方案探讨

    3. **移动/云前项收费**:随着业务向移动端和云端迁移,XSS攻击的风险也随之转移,这对安全策略提出了更高要求。 4. **战略必须拥有安全保障**:在互联网公司的业务规划中,安全已不再是可有可无的选项,而是战略...

Global site tag (gtag.js) - Google Analytics