bboss防止跨站攻击策略

简介: bboss防止跨站攻击策略 此前博客中撰文介绍了bboss 动态令牌机制轻松搞定表单重复提交的方法,本文介绍bboss防止跨站攻击的方法。 通过增强bboss字符编码转换器的功能实现防止跨站攻击功能: com.
bboss防止跨站攻击策略
此前博客中撰文介绍了 bboss 动态令牌机制轻松搞定表单重复提交的方法,本文介绍bboss防止跨站攻击的方法。

通过增强bboss字符编码转换器的功能实现防止跨站攻击功能:
com.frameworkset.common.filter.CharsetEncodingFilter

单纯(不具备防止跨站攻击能力)的字符编码转换过滤器的使用方法如下:
<filter>
	    <filter-name>CharsetEncoding</filter-name>
	    <filter-class>com.frameworkset.common.filter.CharsetEncodingFilter</filter-class>
	    <init-param>
	      <param-name>RequestEncoding</param-name>
	      <param-value>UTF-8</param-value>
	    </init-param>
	    <init-param>
	      <param-name>ResponseEncoding</param-name>
	      <param-value>UTF-8</param-value>
	    </init-param>
	    <init-param>
	      <param-name>mode</param-name>
	      <param-value>0</param-value>
	    </init-param>  
	    <init-param>
	      <param-name>checkiemodeldialog</param-name>
	      <param-value>true</param-value>
	      
	    </init-param>
	    
	    
    </filter>
 
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.jsp</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.frame</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.page</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.freepage</url-pattern>
  </filter-mapping>

这种情况下CharsetEncodingFilter是不具备防止跨站攻击功能的,但是为其增加两个init-param参数后就可以了:

    wallfilterrules 指定黑名单单词表,以逗号分隔多个单词,只要在参数值中出现其中的一个单词,参数值就会被置为null(即参数被过滤掉)
   wallwhilelist  指定不会被黑名单检测的参数的名称清单,多个参数以逗号分隔,白名单中的参数安全性需要应用程序自己控制,对值中出现的非法字符需要进行相应的处理后再输出到客服端(比如,针对浏览器的转义处理等措施)

下面看一个具体的配置示例:
<filter>
	    <filter-name>CharsetEncoding</filter-name>
	    <filter-class>com.frameworkset.common.filter.CharsetEncodingFilter</filter-class>
	    <init-param>
	      <param-name>RequestEncoding</param-name>
	      <param-value>UTF-8</param-value>
	    </init-param>
	    <init-param>
	      <param-name>ResponseEncoding</param-name>
	      <param-value>UTF-8</param-value>
	    </init-param>
	    <init-param>
	      <param-name>mode</param-name>
	      <param-value>0</param-value>
	    </init-param>  
	    <init-param>
	      <param-name>checkiemodeldialog</param-name>
	      <param-value>true</param-value>
	      
	    </init-param>
	    
	    <init-param>
	      <param-name>wallfilterrules</param-name>
	      <param-value><![CDATA[><,%3E%3C,<iframe,%3Ciframe,<script,%3Cscript,<img,%3Cimg,alert(,alert%28,eval(,eval%28,style=,style%3D]]>
	      </param-value>
	      
	    </init-param>
	    
	    <init-param>
	      <param-name>wallwhilelist</param-name>
	      <param-value><![CDATA[content,fileContent]]>
	      </param-value>
	      
	    </init-param>
	    
    </filter>

 
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.jsp</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.frame</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.page</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.freepage</url-pattern>
  </filter-mapping>


配置完毕后,可以通过IBM APPSCAN和Netsparker之类的安全扫描工具来验证配置的有效性,同时可以根据测试结果或者实际情况调整wallfilterrules和wallwhilelist两个参数的配置,直到你的系统变得足够安全为止。
目录
相关文章
|
9天前
|
SQL 存储 安全
Web 常见攻击方式及防御方法
【10月更文挑战第25天】Web 安全是一个复杂而重要的领域,攻击者不断寻找新的攻击方法,我们需要不断加强防御措施,提高安全意识,以保障 Web 应用的安全运行。通过采取多种防御手段的综合运用,我们可以有效地降低 Web 攻击的风险,保护用户的信息和财产安全。同时,随着技术的不断发展,我们也需要持续关注和研究新的安全威胁和防御方法,以应对不断变化的安全形势。
97 56
|
7天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
30 2
|
6月前
|
安全 JavaScript Go
【Web】什么是 XSS 攻击,如何避免?
【Web】什么是 XSS 攻击,如何避免?
|
6月前
|
安全
OWASP ESAPI 预防XSS跨站脚本攻击_xss攻击引入esapi(1)
OWASP ESAPI 预防XSS跨站脚本攻击_xss攻击引入esapi(1)
|
5月前
|
SQL 安全 Java
Spring Boot中的跨站点脚本攻击(XSS)与SQL注入防护
【6月更文挑战第15天】在现代Web应用程序开发中,安全性是一个至关重要的课题。跨站点脚本攻击(XSS)和SQL注入是最常见的两种攻击类型,它们可以严重威胁到应用程序的安全。
563 0
|
5月前
|
监控 安全 前端开发
前端安全:XSS攻击与防御策略
抵御XSS攻击的关键策略包括输入验证、输出编码、设置安全HTTP头如CSP和X-XSS-Protection、谨慎管理存储和会话、使用DOMPurify等库进行数据清理、采用安全编码实践、教育用户和开发人员、实施多层防御、持续测试和更新。其他措施如使用非渲染模板引擎、限制错误信息、使用WAF、加密数据、遵守安全编码标准和进行安全审计也是重要步骤。
132 0
|
SQL 安全 Linux
Web安全——命令注入漏洞详解
Web安全——命令注入漏洞详解
557 0
|
存储 SQL JavaScript
安全测试 web应用安全测试之XXS跨站脚本攻击检测
安全测试 web应用安全测试之XXS跨站脚本攻击检测
197 0
|
存储 JavaScript 安全
跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是什么?区别是什么?底层原理是什么?
跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是什么?区别是什么?底层原理是什么?
862 0