找了几个java后台拦截xss的代码,大致都是下面这样

package com.ibm.web.beans;

import java.util.Enumeration;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletRequestWrapper;

public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {

public XssHttpServletRequestWrapper(HttpServletRequest servletRequest) {

super(servletRequest);

}

public String[] getParameterValues(String parameter) {

String[] values = super.getParameterValues(parameter);

if (values==null) {

return null;

}

int count = values.length;

String[] encodedValues = new String[count];

for (int i = 0; i < count; i++) {

encodedValues[i] = cleanXSS(values[i]);

}

return encodedValues;

}

public String getParameter(String parameter) {

String value = super.getParameter(parameter);

if (value == null) {

return null;

}

return cleanXSS(value);

}

public String getHeader(String name) {

String value = super.getHeader(name);

if (value == null)

return null;

return cleanXSS(value);

}

private String cleanXSS(String value) {

//You'll need to remove the spaces from the html entities below

value = value.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;

}

}

这里只对param做了转义,请问如何对ajax的json请求进行转义?

前台代码

$.ajaxSetup({

contentType: 'application/json'

});

var obj = {"name" : "'", "code" : "

$.post("/submit", JSON.stringify(obj), function (result, status) {

alert('ok');

}, "json");

后台代码

@RequestMapping(value = "/submit", method = RequestMethod.POST)

public void submit(@RequestBody Student student) {

System.out.println(student.getName());

System.out.println(student.getCode());

}

这里对ajax提交的json代码就没有做转义,我用的是spring,请问该如何对ajax请求转义,是使用aop对set方法拦截,还是修改HttpMessageConverter在json转为java对象时转义,还是其他方式?

java后台处理ajax请求_java后台怎么对ajax请求的内容进行xss转义?相关推荐

  1. java 服务器 http请求_Java网络编程——发送HTTP请求到服务器

    当Java程序需要向服务器发送请求或读取服务器数据时,使用URLConnection类是比较好的选择.URLConnection类封装了与服务器互动操作的方法,通过它可以建立与服务器的远程连接,检查服 ...

  2. centos模拟post请求_java模拟post和get请求(2019/10/25)

    一.http含义的介绍 1.http协议是超文本传输协议--具体含义请百度 2.基于tcp/ip协议--注意和udp的区别 3.无状态---本次请求记不住以往请求的状态 4.无连接--每次连接只处理一 ...

  3. java 判断请求为 ajax请求_Java后台判断ajax请求及处理过程详解

    一.问题描述: 当访问一个需要登录的页面时,会有过滤器或者拦截器进行过滤拦截,如果用户没有登录,则跳转到登录页面. 当用户已经登录进入系统后,然后长时间没操作,等到session过期后,再点击一个aj ...

  4. java客户端重复请求_Java后台防止客户端重复请求、提交表单实现原理

    Java后台防止客户端重复请求.提交表单实现原理 发布于 2021-1-8| 复制链接 摘记: 这篇文章主要介绍了Java后台防止客户端重复请求.提交表单实现原理,文中通过示例代码介绍的非常详细,对大 ...

  5. java集合中取最大值_Java后台通过Collections获取list集合中最大数,最小数代码

    我就废话不多说了,大家还是直接看代码吧~ package com.jalor; import java.util.ArrayList; import java.util.Collections; im ...

  6. java实现阿里支付接口_Java后台使用支付宝进行支付实现---使用阿里提供的对应服务的支付宝接口...

    [支付宝相关资源下载地址:支付宝开放平台  在移动支付功能处下载. 一.使用官方的Demo 需要配置基本信息: 打开"APViewController.m"文件,对以下三个参数进行 ...

  7. java 跨域上传_java后台图片跨域上传图片 文件

    发送方 @ResponseBody @RequestMapping(value="/imgUpLoadNewOneKuaYu")public String imgUpLoadNew ...

  8. java post 打开新页面_JAVA后台POST/GET访问方法

    //发送post请求 public staticString sendPost(String url, String param) { PrintWriter out= null; BufferedR ...

  9. java 后台打开新页面_Java后台打开浏览器窗口

    package com.ibsp.utils; import java.io.IOException; import java.net.URISyntaxException; public class ...

最新文章

  1. MESSL(maven + extjs + spring portlet mvc + spring web flow + liferay )整合架构 5
  2. python语言程序的特点_Python语言有哪些优点?
  3. 属性总结(一):marker
  4. java 对象的态_Java面向对象-------多态总结
  5. 初始activiti工作流引擎
  6. seo 伪原创_seo伪原创工具(解析新云查新型伪原创模式工具)
  7. 工作中任务管理的四个原则和四个技能
  8. 计算机应用技术参加文献,面向科技文献的机器翻译(4)-计算机应用技术专业毕业论文.docx...
  9. windows搭建yolo环境
  10. stm32中断优先级_STM的中断系统
  11. 计算机算力英语怎么说,MIT警告深度学习正逼近算力极限,突破瓶颈会让人类成为上帝?...
  12. CVE-2020-11946 ManageEngine OpManager 命令执行
  13. JAVA JNI调用科大讯飞离线语音合成Windows
  14. 数字化转型对企业的意义
  15. c++ 模糊搜索 正则表达式_c++中正则表达式(regex)
  16. 什么是Debian?
  17. SCR-MCR:正则项, OGB榜单--清华唐杰-- 可扩展图学习
  18. 无公网IP如何访问家中的NAS
  19. web应用存在的10大安全问题,安全测试不容忽视!
  20. centos6.6 极点五笔安装

热门文章

  1. advances search design time和runtime显示差异的原因
  2. 快速定位Webclient UI 登陆business role之后timeout问题
  3. why context node binding does not work in pop up window case
  4. 为SAP UI5正名 - 它也支持双向绑定
  5. 从Wiesloch火车站到SAP Walldorf总部的交通方式
  6. 如何查找BAPI SD_SALESDOCUMENT_CHANGE里字段对应的数据库存储表
  7. SAP 不同 ABAP 系统里同一 Customizing activity 的显示差异分析
  8. html %3ca id=%3e,a.markdown
  9. c语言整数与平均值,编写求一组整数的和与平均值的程序
  10. java注解传递value_spring中@value注解需要注意的问题