2017-05-03 1 views
0

Ich verwende springs-security.xml inOrder, um csrf-Token zu konfigurieren. Das csrf-Token ist per default aktiviert. Obwohl ich das csrf-Token in der Konfigurationsdatei manuell aktiviert habe. Dies ist meine Konfigurationsdatei.So finden Sie CSRF-Token funktioniert oder nicht

springs-security.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:security="http://www.springframework.org/schema/security" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 
      http://www.springframework.org/schema/security 
      http://www.springframework.org/schema/security/spring-security-4.0.xsd"> 

    <security:http auto-config="true"> 
    <security:access-denied-handler error-page="/denied"/> 
     <security:form-login login-page="/login" 
     username-parameter="j_username" 
     password-parameter="j_password" 
     login-processing-url="/j_spring_security_check" 
     authentication-failure-url="/login?failed=true" 
     default-target-url="/Hello" always-use-default-target="true"/> 
     <!-- <security:custom-filter ref="secfilter" before="FILTER_SECURITY_INTERCEPTOR" /> --> 
     <security:logout invalidate-session="false" logout-url="/j_spring_security_logout" logout-success-url="/logout"/> 
     <security:csrf /> 
     <security:headers> 
      <security:frame-options disabled="true"/> 
     </security:headers> 
    </security:http> 

Jsp

<input type="hidden" name="${_csrf.parameterName}" 
     value="${_csrf.token}" /> 
    <input type="hidden" id="parameterName" value="${_csrf.parameterName}" /> 
    <input type="hidden" id="token" value="${_csrf.token}" /> 

Das sind meine Konfigurationsdateien.

Ich benutze Ajax Anruf zur Kommunikation mit Server-Seite.

return $http({ 
     url: 'getCity?' + angular.element('#parameterName').val() + '=' + angular.element('#token').val(), 
     method: "POST" 
    }) 

Hier möchte ich testen, ob csrf funktioniert oder nicht.Wie kann ich testen.

+2

Um zu testen, ob es funktioniert, ersetzen Sie das Token in der JSP durch einen Dummy-Wert. Danach sollte die Arbeit aufhören, wenn CSRF seine Arbeit macht –

Antwort

2

Ein paar Möglichkeiten, können Sie es testen:

  • Öffnen Sie die Entwickler-Tools in Ihrem Browser finden Sie das input Element für die CSRF-Token und die Token-Wert bearbeiten. Leiten Sie eine POST-Übermittlung ein. Dies sollte typischerweise einen HTTP-Status 403 verursachen.
  • Wenn Sie mit einem Tomcat oder einem ähnlichen System arbeiten, können Sie sich bei der Webanwendung "Manager" anmelden, Ihre Sitzung suchen, das CSRF-Token Ihrer Sitzung bearbeiten oder entfernen. Dann lösen Sie eine POST-Übermittlung aus. Dies sollte einen Fehler verursachen.
  • Natürlich sollte ein korrektes CSRF-Token keinen Fehler verursachen.