永发信息网

java web如何防止html,js注入

答案:2  悬赏:60  手机版
解决时间 2021-12-02 06:36
java web如何防止html,js注入
最佳答案
在java Web体系中,可以写自定义标签,过滤用户输入,也可以写一个filter过滤器。比如说自定义标签。
开发步骤:
1 写一个标签处理类
2  在/WEB-INF/目录下,写一个*.tld文件,目的是让Web容器知道自定义标签和标签处理类的对应关系
3 在JSP页面中,通过<%@taglib%>指令引用标签库.
4 部署web应用,访问simple.jsp即可
其中,标签处理类可以这样写,转义大于号,小于号等特殊符号。
package cn.itcast.web.jsp.tag;

import java.io.IOException;
import java.io.StringWriter;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;

//标签处理类
public class FilterTag extends SimpleTagSupport {
public void doTag() throws JspException, IOException {
JspFragment jspFragment = this.getJspBody();
StringWriter writer = new StringWriter();
jspFragment.invoke(writer);
String temp = writer.getBuffer().toString();
//结果必定是转义后的字符串
temp = filter(temp);
PageContext pageContext = (PageContext) this.getJspContext();
pageContext.getOut().write(temp);
}
public String filter(String message) {
        if (message == null)
            return (null);
        char content[] = new char[message.length()];
        message.getChars(0, message.length(), content, 0);
        StringBuffer result = new StringBuffer(content.length + 50);
        for (int i = 0; i < content.length; i++) {
            switch (content[i]) {
            case '<':
                result.append("<");
                break;
            case '>':
                result.append(">");
                break;
            case '&':
                result.append("&");
                break;
            case '"':
                result.append(""");
                break;
            default:
                result.append(content[i]);
            }
        }
        return (result.toString());
    }
}
全部回答
这个问题50分都不够的亲。自己去百度吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
陈某花了4.2万元买了一辆面包车,并办了全额
哪个高考前美术培训班好
老式咸奶油怎么做
手机明珠三国在哪里刷青葱马?高手进
公婆才不到60就分开睡了,还是在一张床上,只
如何判断发量减少的原因
江谁好微柴油排半48o南阳价格
蒸汽洗车开一家得多少钱,晋城高平市场好吗?
商店运来一批电冰箱,卖出的台数与剩下的台数
tesco质量体系验厂现场发现一把剪刀有没有问
怎么烫小卷发
单选题Those who act against&nbs
我车停在那里不开没有保险没关系吗
面孔广告在哪里啊,我有事要去这个地方
兔有哪些称呼
推荐资讯
别人损我,我该怎么回
为什么她愿把个人的隐私告诉我?
考华东师范研究生有什么要求
孩子怎么样才算正常身高?
CF 刀战中的卡步怎么走的?
48ⅹ39+48用乘法分配律怎么算
建筑物内为什么一般要求设置湿式自动喷水灭火
掉头发有什么好的方法来治吗?
国内润滑油排名前十位有哪些
口袋妖怪红宝石在119号道路,怎么到上面棕色
已知(2+x)(2x^2+ax+1)的结果中x^2的系数为-3,
我的专业是什么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?