1,前言
最近审计的java项目基本上都会用到request.getParameter和request.getAttribute,报的问题基本上就一个,就是跨站。
2,介绍
字面理解request.getParameter是获取请求参数,request.getAttribute是获取请求属性。先说request.getParameter,它可以获取get和post提交的参数,跨站问题在于它直接获取了用户可控的某个参数。
存储跨站例如用户更新资料,后台使用request.getParameter获取用户提交的参数然后进行了数据库存储。反射跨站例如搜索功能,页面要显示搜索的关键字,使用了request.getParameter。
这里举一个最简单的反射例子,下面是一个jsp页面,用来获取test参数的值,存储同理。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=