1.前端集合的对象的值在后端怎么取?
2.内存马的错误参数获取,导致原有接口失效解决方案
3.java:å
³äºrequest.getParameterMap()
前端集合的对象的值在后端怎么取?
如果前端集合的对象是通过AJAX请求发送到后端的,那么在后端可以通过接收请求参数的方式获取对象的值。
如果前端集合的iview源码解析对象是通过AJAX请求发送到后端的,那么在后端可以通过接收请求参数的方式获取对象的值。
例如,如果前端通过AJAX请求发送了如下数据:
{
"name": "John",
"age": ,
"hobbies": ["music", "sports"]
}
那么在后端可以通过如下代码获取对象的值:
// 获取请求参数
const data = request.getParameterMap()
// 获取对象的值
const name = data.get('name')
const age = data.get('age')
const hobbies = data.get('hobbies')
// 输出对象的值
console.log(name) // John
console.log(age) //
console.log(hobbies) // ["music", "sports"]
上面的代码通过request.getParameterMap方法获取请求参数,然后通过get方法获取对象的属性值。
内存马的错误参数获取,导致原有接口失效解决方案
内存马的错误参数获取可能导致原有接口失效,特别是鱼群源码当Java Listener 类型的内存马在使用request.getParameter获取请求参数时,会干扰Jersey框架等接收参数。
例如,正常在SpringBoot MVC和Jersey REST API环境中,MultivaluedMap能成功接收参数。但内存马的coreavc 源码Listener会调用request.getParameter,导致Jersey无法读取到参数。为验证此问题,可以通过本地搭建环境并使用特定内存马(如北辰Listener)和检测工具(如Tomcat内存马检测)进行测试。
注入内存马后,原本的haxc 源码无参构造函数被修改以添加addListener函数。此时,每次请求相关页面都会生成内存马。检测工具显示,内存马检测无法有效杀死,需要对deleteListener函数进行调整。netframework 源码注入内存马后,原本能接收到的请求参数会缺失。
问题出在内存马通过反射调用getParameter,抢先从CoyoteInputStream读取数据,导致Jersey在后续实例化请求参数时数据被占用。具体定位到的函数为org.apache.catalina.connector.Request#readPostBodyFully和org.glassfish.jersey.message.internal.ReaderWriter#readFromAsString,它们都基于同一个CoyoteInputStream读取。
解决方案是,由于内存马影响了基于getParameter的参数获取,我们可以切换到其他方式,如uri或User-Agent,以避免接口失效。总的来说,当内存马使用getParameter时,可以考虑通过检查uri来避免接口受到干扰。
java:å ³äºrequest.getParameterMap()
å°±æ¯å端æ交å°Servletæè Actionéé¢çåæ°Mapåï¼å¦æä½ æ¯ä»¥è¡¨åæ交ï¼é£ä¹request.getParameterMap()ä¸å°å å«ä½ 表åéé¢ææinputæ ç¾çæ°æ®ï¼ä»¥å ¶name为keyï¼ä»¥å ¶value为å¼ï¼å¦æä½ æ¯ä»¥ajaxæ交çè¯ï¼å°±æ¯ä½ èªå·±ç»ç»çææåæ°äº
2024-12-24 10:44
2024-12-24 10:40
2024-12-24 09:57
2024-12-24 09:57
2024-12-24 09:43
2024-12-24 09:43
2024-12-24 09:32
2024-12-24 09:10