您的位置:首页 > Web前端 > JavaScript

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

2016-06-24 17:12 399 查看
在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()

获取客户端发送的请求cookie
request.getCookies()

获取参数和值
request.getQueryString()

获取客户端发出请求时的网站url
request.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}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: