`
enenxie
  • 浏览: 33112 次
社区版块
存档分类
最新评论

网页防注入式攻击

阅读更多

过滤器filter:

public class XSSProtectFilter
  implements Filter
{
  private static final Logger logger = Logger.getLogger(XSSProtectFilter.class);
  private static String[] safeless = new String[0];
  private static String xssAtackRedirectPath = "";
  
  public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain)
    throws IOException, ServletException
  {
    Enumeration params = req.getParameterNames();
    HttpServletRequest request = (HttpServletRequest)req;
    HttpServletResponse response = (HttpServletResponse)resp;
    
    boolean isSafe = true;
    String requestUrl = request.getRequestURI();
    if (isSafe(requestUrl)) {
      while (params.hasMoreElements())
      {
        String cache = req.getParameter((String)params.nextElement());
        if ((cache != null) && (!cache.isEmpty()) && 
          (!isSafe(cache)))
        {
          isSafe = false;
          break;
        }
      }
    } else {
      isSafe = false;
    }
    if (!isSafe)
    {
      logger.info("=========xss atack redirect path :" + 
        xssAtackRedirectPath);
      response.sendRedirect(request.getContextPath() + 
        xssAtackRedirectPath);
      return;
    }
    filterChain.doFilter(req, resp);
  }
  
  private static boolean isSafe(String str)
  {
    if ((str != null) && (!str.isEmpty())) {
      for (String s : safeless) {
        if (str.toLowerCase().contains(s))
        {
          logger.info("=========请求参数(" + str + ")包含非法参数:" + s);
          return false;
        }
      }
    }
    return true;
  }
  
  public void destroy() {}
  
  public void init(FilterConfig config)
    throws ServletException
  {
    String filterSymbols = config.getInitParameter("filterSymbols");
    if ((filterSymbols != null) && (filterSymbols.length() > 0)) {
      safeless = filterSymbols.split("\\|");
    }
    String errorPagePath = config
      .getInitParameter("xssAtackRedirectPageUrl");
    if ((errorPagePath != null) && (!errorPagePath.isEmpty())) {
      xssAtackRedirectPath = errorPagePath;
    }
  }
}

 web.xml配置

	<filter>
        <filter-name>XSSProtectFilter</filter-name>
        <filter-class>
            com.test.security.filter.XSSProtectFilter
        </filter-class>
        <init-param>
           <param-name>filterSymbols</param-name>
            <param-value>
                <![CDATA[;|'|"|\*|<|>|\"|#|alert|<script|</script|<iframe|</iframe|<frame|</frame|set-cookie|%3cscript|%3c/script
                            |%3ciframe|%3c/iframe|%3cframe|%3c/frame|src=\"javascript:|<body|</body|%3cbody|%3c/body|src|onload
                            |onmouseover|onblue|onkeydown|onchange|onclick|ondblclick|onmouseup|onmousemove|onkeypress
                            |onkeyup|onmove|onresize|onscroll|onstop|onfocus|onsubmit|||]]>
            </param-value>
        </init-param>
        <init-param>
            <param-name>xssAtackRedirectPath</param-name>
            <param-value>/</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>XSSProtectFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

分享到:
评论

相关推荐

    网站注入式攻击的原理与防范

    网站注入式攻击主要指的是SQL注入攻击,它是针对动态网页的一种安全威胁。攻击者利用网站应用程序在处理用户输入数据时的不严谨性,通过构造特定的输入,使得恶意SQL语句能够被执行,从而获取或篡改数据库中的敏感...

    SQL注入攻击与防御技术白皮书.pdf

    SQL注入攻击是一种针对数据库的漏洞攻击方式,它是通过构造巧妙的SQL语句,并将其插入到网页提交的参数中,以获得私密信息或篡改Web数据的攻击方式。这种攻击方式广泛应用于基于Web的应用程序中,攻击者可以通过构造...

    ASP.NET中如何防范SQL注入式攻击

    ASP.NET中如何防范SQL注入式攻击 一、什么是SQL注入式攻击?  所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的...

    浅析SQL注入式攻击与防范.pdf

    SQL注入式攻击是指攻击者利用一些Web应用程序中存在的安全漏洞,通过在网页输入框中输入特定构造的SQL语句,使得原本的SQL查询语句在执行时被修改,以达到非法访问或操作数据库的目的。攻击者往往利用这些漏洞来获取...

    Web环境下SQL注入攻击的检测与防御.pdf

    根据微软技术中心的描述,SQL注入攻击主要分为两大类:一是脚本注入式攻击,即通过向网页表单提交恶意的SQL命令;二是恶意用户输入用来影响被执行的SQL脚本。Stephen Kost进一步指出,这类攻击的核心在于能够未经...

    最新ASP通用防SQL注入代码

    ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在ASP中,处理用户输入是常见的操作,但如果不采取适当的防护措施,这也会带来SQL注入的安全风险。SQL注入是一种攻击手段,...

    ASP源码—360通用ASP防护代码(防sql注入).zip

    ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在ASP源码中,防止SQL注入是至关重要的安全措施,因为SQL注入攻击可能导致数据泄露、系统瘫痪甚至整个数据库被破坏。360通用...

    asp通用防SQL注入文件

    ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在ASP中,数据库操作是常见的任务,但同时也伴随着SQL...开发者应当了解并掌握这些防注入技巧,以提升他们的Web应用安全性。

    asp防注入的代码(经典)

    ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在ASP应用程序中,SQL注入是一种常见的安全威胁,攻击者可以通过输入恶意SQL语句来获取、修改、删除数据库中的敏感信息。...

    asp防注入验证代码

    ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在ASP中,注入攻击是常见的安全威胁之一。注入攻击通常指的是恶意用户通过输入特殊的字符或命令来操纵应用程序的逻辑,可能...

    基于规则的检测SQL注入攻击方法的研究.pdf

    攻击形式主要分为脚本注入式攻击和恶意用户输入影响SQL脚本两种。攻击者利用数据库软件支持的SQL标准,通过构造特定的SQL命令,欺骗服务器执行,实现攻击目的。这种攻击的普遍性和欺骗性较高,因为理论上所有支持SQL...

    asp程序中防止脚本注入攻击代码(VB).rar

    ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在ASP程序中,脚本注入攻击是一种常见的安全威胁,它允许攻击者通过输入恶意脚本来执行非授权的操作,比如窃取敏感数据、...

    ASP源码—sql 通用防注入3.2 最新版更新.zip

    在ASP源码中,SQL通用防注入3.2是最新的版本,它专注于解决网络安全中的一个重要问题:SQL注入攻击。 SQL注入是黑客常用的攻击手段之一,通过在用户输入的数据中嵌入恶意SQL语句,来获取、修改、删除数据库中的敏感...

    sp+access无防护注入源码.zip

    ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在ASP中,Access数据库常被用作后端数据存储,因其轻量级、易用和低成本而受到小型网站和应用的青睐。然而,这种组合在没有...

    121-URL注入攻击.pdf

    这种组合式攻击可以显著增加攻击的成功率和危害程度。 #### 四、防范措施 为了有效防止URL注入攻击,开发人员和运维团队应该采取以下措施: 1. **输入验证**:对于所有用户提交的数据进行严格的验证,确保它们...

    在ASP.NET中防止注入攻击

    为了保护ASP.NET程序免受注入式攻击的危害,建议采取以下步骤: 1. **使用ASP.NET请求验证**:默认情况下,ASP.NET 1.1和2.0会对发送到服务器的数据进行请求验证,检测其中是否包含HTML标记元素和保留字符,以防止...

    基于ASP的SQL通用防注入程序零点完美版.zip

    ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在ASP技术中,开发者可以使用VBScript或JScript等语言编写代码,与服务器上的数据库进行交互,展示实时数据。然而,ASP应用...

    基于ASP的sql 通用防注入3.2 最新版更新.zip

    "基于ASP的SQL通用防注入3.2最新版更新.zip"这个压缩包文件很显然是为了帮助ASP开发者防范此类攻击而提供的解决方案。 SQL注入防御主要涉及以下几个关键知识点: 1. **参数化查询**:参数化查询是防止SQL注入的最...

    asp防SQL注入程序

    ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在ASP应用程序中,SQL注入是一种常见的安全威胁,攻击者可以通过输入恶意SQL代码来获取、修改、甚至删除数据库中的敏感信息...

    基于ASP网站中SQL注入攻击及其安全防御策略的研究.pdf

    ASP(Active Server Pages)是一种服务器端脚本环境,用于创建动态交互式网页。它曾经被广泛用于开发动态网站和Web应用,但随着时间的推移,由于安全性和性能问题,ASP逐渐被***等其他技术所取代。然而,在一些旧...

Global site tag (gtag.js) - Google Analytics