JSF действительно имеет «встроенную» защиту от CSRF с помощью javax.faces.ViewState
. На JSF 1.x это, может быть, «слишком просто» угадать. Это было исправлено в JSF 2.1. См. Также выпуск JSF 812 и выпуск JSF 869 .
Ваши основные проблемы должны быть XSS и SQL-инъекции . Успешная атака XSS будет источником гарантированной успешной атаки CSRF. Чтобы избежать XSS, убедитесь, что вы (пере) отображаете все контролируемый пользователем ввод, используя h:outputText
, а не в виде простого шаблона шаблона. Внедрение SQL не обязательно приводит к потенциальным дырам в CSRF, но может привести к утечке или неправильному отображению конфиденциальных данных. Чтобы избежать этого, убедитесь, что вы используете надежную среду ORM, которая использует именованные запросы (JPA, Hibernate и т. Д.) Или, когда вы используете "простой ванильный" JDBC, убедитесь, что вы используете PreparedStatement
вместо Statement
полностью.