网站XSS安全的漏洞问题如何解决

我在测试自己网站http://www.xxx.com/">alert(55) 敲这样一个链接会弹窗 查询了一下应该是存在XSS漏洞吧 求大神告知该如何修复呢

配起来有点麻烦,大概就下面的思路,你在网上找找吧

[#escape x as htmlEnc(x)]
[/#escape]

 public class HtmlEncFunction implements TemplateMethodModel {

    private static final String EMPTY = "";

    /**
     * 
     * 特殊字符转义.
     * 
     * @see freemarker.template.TemplateMethodModel#exec(java.util.List)
     */
    @Override
    public Object exec(List arguments) throws TemplateModelException {
        String result = EMPTY;
        if (CollectionUtils.isNotEmpty(arguments)) {
            Object param = arguments.get(0);
            if (param instanceof String) {
                result = (String) param;
                if (StringUtils.isNotBlank(result)) {
                    result = ESAPI.encoder().encodeForHTML(result);
                }
            }
        }
        return result;
    }

    public static String cleanXSS(String value) {
        if (StringUtils.isNotBlank(value)){
            value = value.replaceAll("<", "& lt;").replaceAll(">", "& gt;");
            value = value.replaceAll("\\(", "& #40;").replaceAll("\\)", "&#41;");
            value = value.replaceAll("'", "& #39;");
            value = value.replaceAll("eval\\((.*)\\)", "");
            value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']",
                    "\"\"");
            value = value.replaceAll("script", "");
        }
        return value;
    }
}

具体执行的方式有以下几点:
第一、在输入方面对所有用户提交内容进行可靠的输入验证,提交内容包括URL、查询关键字、http头、post数据等

第二、在输出方面,在用户输内容中使用

标签。标签内的内容不会解释,直接显示。

第三、严格执行字符输入字数控制。

四、在脚本执行区中,应绝无用户输入。

基本上处理方式 都是使用过滤器,过滤掉特殊字符。网上有比较全的过滤代码。

请记住两条原则:过滤输入和转义输出。

具体执行的方式有以下几点:
第一、在输入方面对所有用户提交内容进行可靠的输入验证,提交内容包括URL、查询关键字、http头、post数据等

第二、在输出方面,在用户输内容中使用

标签。标签内的内容不会解释,直接显示。

第三、严格执行字符输入字数控制。

四、在脚本执行区中,应绝无用户输入。

用过滤器,把这种xxs过滤掉

尝试对用户的输入进行严格的过滤,<>/script''alert()之类的,最好就白名单吧。