Injection de données par hacking sur le viewState - Perte de l'affichage
Bonjour,
En injectant des données incorrectes dans le viewState de notre application à l'aide d'un logiciel d'altération de données (TamperData), le mécanisme de filtre de l'application plante (NullPointerE), ce qui n'est pas un problème en soit.
Code:
1 2 3
|
springSecurityFilterChain.doFilter(httpRequest, httpResponse, chain);
-->> NPE |
Suite à cela, les erreurs générées dans le code ne sont plus prises en compte et l'application n'affiche plus les pages d'erreur :
Code:
1 2 3 4 5 6 7 8 9 10
|
<error-page>
<error-code>500</error-code>
<location>/error.xhtml</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.xhtml</location>
</error-page> |
Le problème est que l'utilisateur se voit présenté la stack-trace de l'erreur Java (ici un NPE), et nous ne voulons pas qu'il y ait accès.
En faisant un try/catch sur l'erreur on n'a bien sur plus la stack-trace d'affichée, mais je recherche une solution plus élégante, à savoir renvoyer la personne vers une page de type "404"...
J'ai essayé d'envoyer une erreur, sans résultat :
Code:
1 2 3
|
httpResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
chain.doFilter(httpRequest, httpResponse); |
Avez vous une idée?
Je vous remercie pour votre temps.
PS : j'ai testé d'autres erreurs que NPE, pensant que le "runtime" était la cause, mais non.