SSH中转义特殊字符串以及非Web项目中的特殊字符转换

来源:互联网 发布:树莓派gpio编程 编辑:程序博客网 时间:2024/06/05 07:37

工作中需要把用户输入的特殊字符转义,以确保系统安全。

一、为何要这么做?

比如用户发个帖子,输入了<script>alert(1);</script>。如果我们不进行任何转义,那么当其他用户浏览这个帖子的时候,这段文字会被浏览器理解成javascript代码解释执行。

二、如何转义?

为了解决这个功能,我想起了JSTL中的<c:out/>标签可以对特殊字符进行转义,于是查找了一下源码,发现可以使用JSTL中的一个工具类,这个工具类的全名如下:

 org.apache.taglibs.standard.tag.common.core.Util  用import引入该工具类并调用该工具类的escapeXml(String buffer) 方法即可。

下面的代码教会你如何在java代码中使用这个类


import org.apache.taglibs.standard.tag.common.core.Util;public class Aa {    public static void main(String args[]) {        String a = "aaaaa<bbbbb";        String b = Util.escapeXml(a);        System.out.println("a:  " + a);        System.out.println("b:  " + b);    }}

三、如果您的项目中没有用到JSTL或者不是Web项目

这种情况比较少,但也存在。比如你给网站写个后台工具程序、或者你的网站全部用jsp的 <% .... %>标签编写 (=。=!)。我找到了Util类的源代码,并对其进行了改写,下载链接在下面:


点击打开链接

你只要把这个类拷贝进你的源码中并根据需要修改package后面的包名即可。


原创粉丝点击