security - ¿Se debe usar<protected-views> para la protección JSF 2.2 CSRF?
jsf-2.2 (1)
Estoy confundido. Veo que JSF 2.0 tiene protección CSRF implícita: cómo JSF 2.0 previene CSRF
Por otro lado, de acuerdo con el artículo http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/JSF-CSRF-Demo/JSF2.2CsrfDemo.html , deberíamos agregar el siguiente elemento a faces-config.xml
archivo faces-config.xml
con la lista de páginas JSF.
<protected-views>
<url-pattern>/csrf_protected_page.xhtml</url-pattern>
</protected-views>
¿Se debe usar <protected-views>
para la protección JSF 2.2 CSRF?
Estoy confundido. Veo que JSF 2.0 tiene protección CSRF implícita: cómo JSF 2.0 previene CSRF
Esta protección implícita solo se aplica a solicitudes POST (es decir, páginas con <h:form>
).
Por otro lado, de acuerdo con el artículo http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/JSF-CSRF-Demo/JSF2.2CsrfDemo.html , deberíamos agregar el siguiente elemento a
faces-config.xml
archivofaces-config.xml
con la lista de páginas JSF.
<protected-views> <url-pattern>/csrf_protected_page.xhtml</url-pattern> </protected-views>
Esta protección también será efectiva en las solicitudes GET (es decir, páginas con <f:viewAction>
, que también es nuevo desde JSF 2.2). Siempre que use <h:link>
o <h:button>
para crear enlaces / botones GET en esas páginas, se javax.faces.Token
un nuevo parámetro de solicitud GET javax.faces.Token
con un valor de token autogenerado a la URL en el HTML generado. salida y este parámetro sería necesario cuando la página en cuestión se declara en <protected-views>
.
¿Se debe usar
<protected-views>
para la protección JSF 2.2 CSRF?
Solo en páginas con <f:viewAction>
que le gustaría proteger con CSRF. Aquellos con <h:form>
ya están protegidos implícitamente por javax.faces.ViewState
campo de entrada oculto, siempre que no haya desactivado el estado de vista JSF por <f:view transient="true">
. Consulte también la prevención de ataques de inyección CSRF, XSS y SQL en JSF .