知识库-知识库-新建(标题、政策依据、办理流程、咨询电话、责任部门)5处输入框中输入XSS语句,对应刷新或者点击当前新建,弹出Xss弹框。
应该怎么解决这个漏洞,让它不再弹框
是不是需要在下面这段代码段里添加类似EscapeUtil.escapeHtml的语句,具体应该怎么写
/**
* 保存知识表
*/
@ResponseBody
@RequiresPermissions(value={"kms:doc:doc:add","kms:doc:doc:edit"},logical=Logical.OR)
@RequestMapping(value = "save/{mode}")
public AjaxJson save(@PathVariable String mode,Doc doc, Model model,HttpServletRequest request){
AjaxJson j = new AjaxJson();
String strDate=null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(doc.getExpirationTime()!=null){
Date date = new Date(String.valueOf(doc.getExpirationTime())); //获得你要处理的时间 Date型
strDate= sdf.format(date );
}
doc.getDocText().setText("<span style=\"font-weight: bold;\">"+"适用范围"+"</span>"+":"+doc.getScope()+"</br>"+"<span style=\"font-weight: bold;\">"+"内容"+"</span>"+":"+"</br>"+"<span style=\" width: 20%\">"+doc.getCont()+"</span>"+"</br>"+"<span style=\"font-weight: bold;\">"+"政策依据"+"</span>"+":"+doc.getPolicyBasis()+"</br>"+"<span style=\"font-weight: bold;\">"+"责任部门"+"</span>"+":"+doc.getResponsibleDepartment()+"</br>"+"<span style=\"font-weight: bold;\">"+"办理流程"+"</span>"+":"+doc.getHandlingProcedures()+"</br>"+"<span style=\"font-weight: bold;\">"+"咨询电话"+"</span>"+":"+doc.getHotline()+"</br>"+"<span style=\"font-weight: bold;\">"+"状态"+"</span>"+":"+doc.getDocStatus()+"</br>"+"<span style=\"font-weight: bold;\">"+"过期时间"+"</span>"+":"+strDate);
/**
* 后台hibernate-validation插件校验
*/
String errMsg = beanValidator(doc);
if (StringUtils.isNotBlank(errMsg)){
j.setSuccess(false);
j.setMsg(errMsg);
return j;
}
//校验知识名是否重复
Doc dc = new Doc();
dc.setTitle(doc.getTitle());
List<Doc> docList = docService.findList(dc);
if(doc.getId()!=null && !"".equals(doc.getId())){
if(docList!=null && docList.size()>0){
for(Doc d:docList){
if(!doc.getId().equals(d.getId())){
j.setSuccess(false);
j.setMsg("知识标题重复");
return j;
}
}
}
}else{
if(docList!=null && docList.size()>0){
j.setSuccess(false);
j.setMsg("知识标题重复");
return j;
}
}
List<DocPermission> permissionList = Lists.newArrayList();
List<String> roleIds = doc.getRoleIds();
if(roleIds!=null && roleIds.size()>0)
{
for(String roleId : roleIds){
String[] values = request.getParameterValues("permissions_" + roleId);
if(values!=null && values.length>0){
for(int i=0; i<values.length;i++){
DocPermission docPermission = new DocPermission();
docPermission.setId(IdGen.uuid());
//docPermission.setDocId(doc.getId());
docPermission.setRoleId(roleId);
docPermission.setPermission(values[i]);
permissionList.add(docPermission);
}
}
}
}
doc.setDocPermissionList(permissionList);
try {
//新增或编辑表单保存
if(StringUtils.isNotBlank(doc.getId()) && KmsConstant.DOC_TYPE_ONE.equals(doc.getType())){
//修改
Doc oldDoc = docService.get(doc.getId());
//知识内容未表更,则不需要变更版本,也不需要审核
if(oldDoc.getDocText().getText().equals(doc.getDocText().getText())){
docService.updateDoc(oldDoc,doc,mode);
}else{
docService.save(doc,mode);
}
}else{
//新增
docService.save(doc,mode);
}
望采纳,根据上面代码写
前端转义