Я чиню некоторые старые дефекты и как часть одного дефекта, я должен удостовериться, что некоторыми запросами является только POST к странице JSP вместо ПОЛУЧИТЬ запроса. Приложение имеет форму, которая отправляет данные другой странице JSP (я знаю ее несправедливость и против MVC, но слишком поздно зафиксировать его), так как это - страница JSP, таким образом, мы можем POST, запрос или иначе мы может ПОЛУЧИТЬ запрос. В случае злонамеренного пользователя, может считать форму и отправить запрос как ПОЛУЧЕНИЕ от браузера как http://host:80/somejsp.jsp?param=value¶m=value
и т.д. В этом случае это становится нарушением. Я должен удостовериться, что такой ДОБРАТЬСЯ, запросы не обрабатываются. Один способ сделать состоит в том, чтобы работать ниже шагов на jsp странице -
if (request.getMethod().equals("GET")) {
// reroute the user as it is not a valid req
}
Там какой-либо другой путь состоит в том, чтобы сделать это?
Два решения:
Добавить <ограничение безопасности >
с пустым
в
из *. Jsp
и
из GET
, который будет блокировать запросы GET
к файлам JSP для всех (как было предложено МакДауэллом):
Ограничить запросы GET для файлов JSP
файлы JSP
* .jsp
ПОЛУЧИТЬ
<ограничение-авторизации />
Создайте фильтр
, который прослушивает
из *. Jsp
и выполняет следующие действия в doFilter ()
метод.
if (((HttpServletRequest) request) .getMethod (). Equals ("GET")) {
((HttpServletResponse) ответ) .sendError (HttpServletResponse.SC_METHOD_NOT_ALLOWED);
} еще {
chain.doFilter (запрос, ответ);
}
Нет необходимости копировать одно и то же на все страницы JSP, которые могут быть подвержены только IllegalStateException: ответ уже зафиксировал
ошибки.
Добавьте ограничений безопасности в ваш web.xml, запрещающий запрос.