2014-12-09 3 views
0

저는 웹 보안에 익숙하지 않아 웹 응용 프로그램에 CSRF Gaurd을 구현하려고합니다.CSRF Guard - 서버 측에서 생성 된 토큰의 유효성을 검사하는 방법

웹 응용 프로그램에서 필요한 모든 구성을 수행 했으므로 아약스 호출을하거나 HTML 페이지가로드 될 때 토큰 (FWJY-N767-M4HG-DHXT-WCE4-5J08-MV4G-LNV4)이 생성/삽입되는 것을 볼 수 있습니다. 모든 요청에 ​​대해 토큰이 동일하다는 사실을 알고 있습니다.

그러나 서버 측에서 토큰의 유효성을 검사 할 수 없습니다. 내 연구에 따르면 CsrfGuardFilter.java 클래스로 이동하여 토큰의 유효성을 검사해야하지만 디버깅 할 때 CsrfGuardFilter.java 클래스로 이동하지 않으며 토큰을 기반으로 요청의 유효성을 검사하지 않음을 알 수 있습니다. 토큰을 포함하지 않는 요청에 대해서도 응답을 얻고 있습니다.

내 웹 응용 프로그램에서 CSRF Guard를 올바르게 구현할 수있는 사람을 안내해 줄 수 있습니까? 당신의 도움을 주셔서 감사합니다.

답변

0

내 웹 응용 프로그램에서 GWT 생성 된 JavaScript 코드 토큰이 아약스 호출에 주입되지 않았기 때문에 다양한 포럼에 대한 연구를 수행 한 후 프런트 엔드 JavaScript를 생성하기 위해 GWT을 사용하고 있습니다. 따라서 CSRF GWT 코드를 구현하려면 * .nocache.js 스크립트 앞에 csrf guard 스크립트를 삽입해야합니다.

Helpful link

0

당신은 올바른 위치에 당신의 web.xml에 CsrfGuardFilter, CsrfGuardServletContextListener 및 CsrfGuardHttpSessionListener를 선언해야합니다. 내 응용 프로그램에서는 세션을 만든 후에 배치했습니다. 또한 JavaScriptServlet에 대한 매핑을 정의해야합니다.

참고 : 응용 프로그램에 owasp csrfguard 3.1.0을 사용하고 위의 구성 요소에 대해서만 매핑을 정의해야했습니다. 이전 버전의 경우 더 많은 등록 정보/구성 요소를 정의해야 할 수 있습니다.

나는 내 구현을 위해 다음 예제의 도움을했다 : https://github.com/aramrami/OWASP-CSRFGuard

나는 당신이 당신의 문제가 해결되었다 내 대답은 미래에 누군가가 도움이되기를 바랍니다.