代码审计之jsp+servlet模式从客户端接收参数的函数大全

来源:互联网 发布:matlab矩阵中有未知数 编辑:程序博客网 时间:2024/05/21 09:22

在java代码审计的过程中,jsp+servlet架构的形式是我们学习javaweb开发的基础,虽然它不如SpringMVC框架流行,但是在view层的处理还大多依赖于jsp,jsp作为用户和服务器操作数据的入口,我们总结一下jsp的输入函数还是十分必要的。安全的威胁也是主要来自于客户端的输入,如果我们对客户端的数据数据在后台有严格的校验,那么我们也就能更深层次的保护我们的网站安全。在java代码审计的过程中,对数据流进行跟踪也是一种常用的审计方法。我们就总结并验证了一下jsp中接收客户端数据的函数。首先我们介绍这个HttpServletRequest类。这个类主要接收客户端请求的类。我们分析的大部分函数也都是在这个类中。

HtppServletRequest对象获得客户端请求参数方法request.getParameter(String name)接收参数的多个值的方法(一个参数多个值情况)request.getParameterValues(String name)接收参数的名字request.getParameterNames()接收参数的名字和值request.getParameterMap()获取客户机请求头方法request.getHeader(string name)request.getHeaders(String name)request.getHeaderNames() 调用此方法来读取来自客户端表单的数据流request.getInputStream()request.getReader()获取客户端发送的请求cookierequest.getCookies()获取参数和值request.getQueryString()获取客户端发出请求时的网站urlrequest.getRequestURL()返回请求文件内容的长度,返回值类型为int,长度伪造request.getContentLength()获取请求文件内容的类型request.getContentType()


jsp中EL表达式获取客户端内容

EL表达式${param.name}相当于request.getParamter(name)${paramvalues.name}相当于request.getParamtervalues(name)${header.name}相当于request.getHeader(name)${headerValues.name}相当于request.getHeaderValues(name)获取带有特定名称的第一个cookie值${cookie.name.value}获取请求的参数字符串${pageContext.request.queryString}获取请求的URL,但不包括请求的参数字符串${pageContext.request.requestURL}


0 0