Я пробовал много способов использовать флаг httponly
для предотвращения атаки XSS
, но все не удалось.Флаг HttpOnly не может работать на tomcat6.0.36
Обычный способ установить использование HttpOnly = true
в context.xml
Для тестового результата: в коде Java установить два тестовых параметров в куки и в файле передней Jsp включают JavaScript для предупреждения document.cookie
, в два тестовых параметра, заданных в java-коде, получают и показывают в предупреждении.
код Java:
Cookie cookie = new Cookie("httponlytest","testsss");
response.addCookie(cookie);
Cookie cookie1 = new Cookie("testhttponly","successfu");
response.addCookie(cookie1);
Javascript в Jsp файле:
alert("cookie------------"+document.cookie);
- Что я сделал не так?
- Если вы знаете, как это было бы очень полезно.
Спасибо за ваш ответ. – zjzhangkui
Вы имеете в виду, установив useHttpOnly = "true" в контексте - это просто работа для JSESSIONID, cookie, установленный в backend java-коде, все равно может быть получен javascript, не так ли? если да, то может ли он предотвратить атаку XSS? Вы сказали правильно, если setSecure (true) для cookie в java-коде, этот файл cookie не может быть получен с помощью javascript. – zjzhangkui
'setSecure' для' https: '. Используйте [Cookie.setHttpOnly (true)] (http://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html). –