java后台处理ajax请求_java后台怎么对ajax请求的内容进行xss转义?
找了几个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转义?相关推荐
- java 服务器 http请求_Java网络编程——发送HTTP请求到服务器
当Java程序需要向服务器发送请求或读取服务器数据时,使用URLConnection类是比较好的选择.URLConnection类封装了与服务器互动操作的方法,通过它可以建立与服务器的远程连接,检查服 ...
- centos模拟post请求_java模拟post和get请求(2019/10/25)
一.http含义的介绍 1.http协议是超文本传输协议--具体含义请百度 2.基于tcp/ip协议--注意和udp的区别 3.无状态---本次请求记不住以往请求的状态 4.无连接--每次连接只处理一 ...
- java 判断请求为 ajax请求_Java后台判断ajax请求及处理过程详解
一.问题描述: 当访问一个需要登录的页面时,会有过滤器或者拦截器进行过滤拦截,如果用户没有登录,则跳转到登录页面. 当用户已经登录进入系统后,然后长时间没操作,等到session过期后,再点击一个aj ...
- java客户端重复请求_Java后台防止客户端重复请求、提交表单实现原理
Java后台防止客户端重复请求.提交表单实现原理 发布于 2021-1-8| 复制链接 摘记: 这篇文章主要介绍了Java后台防止客户端重复请求.提交表单实现原理,文中通过示例代码介绍的非常详细,对大 ...
- java集合中取最大值_Java后台通过Collections获取list集合中最大数,最小数代码
我就废话不多说了,大家还是直接看代码吧~ package com.jalor; import java.util.ArrayList; import java.util.Collections; im ...
- java实现阿里支付接口_Java后台使用支付宝进行支付实现---使用阿里提供的对应服务的支付宝接口...
[支付宝相关资源下载地址:支付宝开放平台 在移动支付功能处下载. 一.使用官方的Demo 需要配置基本信息: 打开"APViewController.m"文件,对以下三个参数进行 ...
- java 跨域上传_java后台图片跨域上传图片 文件
发送方 @ResponseBody @RequestMapping(value="/imgUpLoadNewOneKuaYu")public String imgUpLoadNew ...
- java post 打开新页面_JAVA后台POST/GET访问方法
//发送post请求 public staticString sendPost(String url, String param) { PrintWriter out= null; BufferedR ...
- java 后台打开新页面_Java后台打开浏览器窗口
package com.ibsp.utils; import java.io.IOException; import java.net.URISyntaxException; public class ...
最新文章
- MESSL(maven + extjs + spring portlet mvc + spring web flow + liferay )整合架构 5
- python语言程序的特点_Python语言有哪些优点?
- 属性总结(一):marker
- java 对象的态_Java面向对象-------多态总结
- 初始activiti工作流引擎
- seo 伪原创_seo伪原创工具(解析新云查新型伪原创模式工具)
- 工作中任务管理的四个原则和四个技能
- 计算机应用技术参加文献,面向科技文献的机器翻译(4)-计算机应用技术专业毕业论文.docx...
- windows搭建yolo环境
- stm32中断优先级_STM的中断系统
- 计算机算力英语怎么说,MIT警告深度学习正逼近算力极限,突破瓶颈会让人类成为上帝?...
- CVE-2020-11946 ManageEngine OpManager 命令执行
- JAVA JNI调用科大讯飞离线语音合成Windows
- 数字化转型对企业的意义
- c++ 模糊搜索 正则表达式_c++中正则表达式(regex)
- 什么是Debian?
- SCR-MCR:正则项, OGB榜单--清华唐杰-- 可扩展图学习
- 无公网IP如何访问家中的NAS
- web应用存在的10大安全问题,安全测试不容忽视!
- centos6.6 极点五笔安装
热门文章
- advances search design time和runtime显示差异的原因
- 快速定位Webclient UI 登陆business role之后timeout问题
- why context node binding does not work in pop up window case
- 为SAP UI5正名 - 它也支持双向绑定
- 从Wiesloch火车站到SAP Walldorf总部的交通方式
- 如何查找BAPI SD_SALESDOCUMENT_CHANGE里字段对应的数据库存储表
- SAP 不同 ABAP 系统里同一 Customizing activity 的显示差异分析
- html %3ca id=%3e,a.markdown
- c语言整数与平均值,编写求一组整数的和与平均值的程序
- java注解传递value_spring中@value注解需要注意的问题