`

org.springframework.web.util.HtmlUtils,特殊字符转义工具类

阅读更多

     很多时候,由于特殊字符的原因,会造成用户输入的信息反馈到页面上时会显示成乱码,造成页面排版混乱;另外,黑客经常利用特殊字符对网站进行xss跨站攻击,所以我们需要对页面上提交的特殊字符进行html转码。

spring提供了一个工具类,org.springframework.web.util.HtmlUtils,省去了我们写工具类对html中的特殊字符进行过滤的麻烦。以下是对该工具类的使用示例:

import org.springframework.web.util.HtmlUtils;
public class HtmpEscapeExample {
    public static void main(String[] args) {
        String specialStr = " #测试转义:#<table id=\"testid\"><tr>test1;test2</tr></table>";
     // ①转换为HTML转义字符表示
        String str1 = HtmlUtils.htmlEscape(specialStr);
        System.out.println(str1);
      
     // ②转换为数据转义表示
        String str2 = HtmlUtils.htmlEscapeDecimal(specialStr);
        System.out.println(str2);
      
      //③转换为十六进制数据转义表示
        String str3 = HtmlUtils.htmlEscapeHex(specialStr); 
        System.out.println(str3);
      
       // ④下面对转义后字符串进行反向操作
        System.out.println(HtmlUtils.htmlUnescape(str1));
        System.out.println(HtmlUtils.htmlUnescape(str2));
        System.out.println(HtmlUtils.htmlUnescape(str3));
    }
} 

             另外,如果直接是用户输入的地方,可以直接过滤,但如果管理员用编辑器来编辑,就会有本来对应格式的HTML呗,这样的话,一般就过滤一些特殊标签,比如<script>,肯定是不能用的。还有就是一些触发事件选项,比如<img src="" onerror=""> 中的onerror就要过滤掉,不能在img标签中出现,单独的<img src="">这样可以;一般大型公司对链接里的触发事件会做一些过滤,比如一般你输入<a href="" onmouseover="">,就只剩下<a href="">。

 

分享到:
评论

相关推荐

    HTTP请求客户端工具类RestTemplateUtil.java

    org.springframework.web.client.AsyncRestTemplate org.springframework.web.client.RestTemplate HTTP请求工具类,基于以上两个Rest请求工具模板完成封装HTTP请求,包括同步和异步请求的实现。

    ssh(structs,spring,hibernate)框架中的上传下载

     需要指定的是Spring 1.2.5提供了两套Hibernate的支持包,其中Hibernate 2相关的封装类位于org.springframework.orm.hibernate2.*包中,而Hibernate 3.0的封装类位于org.springframework.orm.hibernate3.*包中,...

    ClassFinal是一款java class文件安全加密工具

    ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译

    Spring API

    13. Web MVC framework Web框架 13.1. 概述 13.1.1. 与其他MVC实现框架的集成 13.1.2. Spring Web MVC框架的特点 13.2. DispatcherServlet 13.3. 控制器 13.3.1. AbstractController 和 WebContentGenerator ...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...

    Spring中文帮助文档

    13. Web MVC framework Web框架 13.1. 概述 13.1.1. 与其他MVC实现框架的集成 13.1.2. Spring Web MVC框架的特点 13.2. DispatcherServlet 13.3. 控制器 13.3.1. AbstractController 和 WebContentGenerator ...

    springmybatis

    其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细...

    Spring MVC的文件下载实例详解

    import org.springframework.util.FileCopyUtils; public byte[] downloadFile&#40;String fileName&#41; { byte[] res = new byte[0]; try { File file = new File&#40;BACKUP_FILE_PATH, fileName&#41;; if ...

    基础的java web项目,完成了应用骨架的搭建,提供了底层框架的支持

    (1)这是一个基础的java web项目,完成了应用骨架的搭建,提供了底层框架的支持,但里面的内容是空白的,可以在此基础上进行项目开发或用来学习。...(6)cn.sky.framework.util 包中提供了常用的工具类,如 id 生成等。

    单点登录源码

    Spring+SpringMVC+Mybatis框架集成公共模块,包括公共配置、MybatisGenerator扩展插件、通用BaseService、工具类等。 &gt; zheng-admin 基于bootstrap实现的响应式Material Design风格的通用后台管理系统,`zheng`...

    BAMS-JAVA快速开发框架 2.5

    4、新增日常工作已办任务撤销功能,重构日常工作部分代码5、新增util.spring包中可以在ApplicationContext环境外获取bean的工具类.6、重构代码生成部分代码框架定位:BAMS是一个 开源的政企信息管理系统 基础框架。...

    jframework:基于对spring boot的二次封装,目的是减少重复代码,提高开发效率

    基于对spring boot的二次封装,目的是减少重复代码,提高开发效率,收集可替换的技术实现jpa对Long类型的累积的created_at,updated_at和deleted_at转换的自动维护日志集成麋鹿日期和json工具类集成redis集成数据库...

Global site tag (gtag.js) - Google Analytics