Próbuję chronić moją aplikację internetową przed atakami CSRF przy użyciu przechwytującego tokena rozporek.Przechwytywacz tokenów Struts2: ochrona CSRF
Problem, z którym teraz borykam, polega na tym, że nasze strony JSP nawiązują więcej niż jedno połączenie z serwerem (podczas gdy JSP jest konwertowane na JS, to Jock dodaje znak toka. Ale w tym JS istnieje wiele żądań Ajax. wyjaśniam się.), z powodu przechwytywania tokena pierwsze żądanie do serwera jest sprawdzane. Inne żądania są unieważniane, ponieważ token zastępczy jest resetowany po każdej walidacji.
Czy istnieje sposób zatrzymać Struts z resetowania token za każdym razem to sprawdza? Czy są jakieś inne rozwiązania, aby poradzić sobie z tym w kolumnie przechwytującej?
Ja również patrząc na module tomcatcsrfprotection
Chyba będę skończyć z tym samym problemem tutaj również.
managepage.jsp
:
<s:token />
<script type="text/javascript">
var strutsToken = "<s:property value="#session['struts.tokens.token']" />";
var requestParams = {mainAction: 'loadGroups','struts.token.name': 'token' , token:strutsToken};
Ext.Ajax.request({
url: 'manageUserAccount.action',
params: Ext.urlEncode(requestParams),
disableCaching: true,
success: this.actionCallback
});
//loading widgets
var requestParams = {mainAction: 'loadusers','struts.token.name': 'token' , token:strutsToken};
Ext.Ajax.request({
url: 'manageUserAccount.action',
params: Ext.urlEncode(requestParams),
disableCaching: true,
success: this.actionCallback
});
</script>
Struts.xml
:
<action name="manageUserAccountEdit" class="ManageUserAccountEditAction">
<interceptor-ref name="csrf-protection" />
<result name="success">/pages/manageUserAccount.jsp</result>
</action>
Właśnie dodany minimalny kod tak, że zrozumienie będzie łatwiejsze.
Co to znaczy, że strony * jsp wykonują więcej niż jedno połączenie z serwerem *? –
Potrzebuję wykonać wiele żądań ajax przy użyciu tego samego tokena na stronie klienta. – Mok
Podczas gdy jsp jest konwertowane na js, to token rozpórki jest dodawany do js. W tym js istnieje wiele żądań Ajax. Mam nadzieję, że wyrażam się jasno. – Mok