java web如何防止html,js注入

用户可以在填写资料时加入网页标签或<script>标签的脚本,这样会影响整个网站,怎样可以防止html,js注入?PS:不要单纯的理论,具体怎么操作... 用户可以在填写资料时加入网页标签或<script>标签的脚本,这样会影响整个网站,怎样可以防止html,js注入?

PS:不要单纯的理论,具体怎么操作
展开
 我来答
891377446
2014-02-02 · TA获得超过475个赞
知道小有建树答主
回答量:172
采纳率:0%
帮助的人:98.2万
展开全部

在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;

//<simple:filter>标签处理类
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("&lt;");
                break;
            case '>':
                result.append("&gt;");
                break;
            case '&':
                result.append("&amp;");
                break;
            case '"':
                result.append("&quot;");
                break;
            default:
                result.append(content[i]);
            }
        }
        return (result.toString());
    }
}
Fjtn6660
2014-02-02 · 超过28用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:66.4万
展开全部
这个问题50分都不够的亲。自己去百度吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式