2010-05-19 5 views
0

내가 양식에 대한 공격을 방지하기 위해 토큰을 사용 요청보안 토큰 문제는 응용 프로그램을 구축 할 때

나는 등의 형태로 포함 한 형태는 새로운 ONE TIME 보안 토큰을 얻는다 렌더링 될 때마다 숨겨진 필드. 이 토큰은 세션에도 저장됩니다.

양식이 전송 될 때 토큰이 세션의 토큰과 비교되어 양식이 합법적인지 확인합니다. 이것은 표준 페이지에 잘 작동합니다.

문제 형태를 보내 Ajax를 사용할 때 이러한 양식 중 하나를 전송하면, 한 페이지에 여러있을 수 있습니다, 토큰이 그와 다른 한 시간 토큰에 대한 다음 유효하지 않습니다.

누구 에게라도 조언이 필요합니까? 또는 세션 당 하나의 토큰을 생성하고 폼이 전송 될 때마다 토큰을 무효화하는 대신이를 사용하기에 충분히 안전합니까?

+1

정상적인 양식 중 일부를 별도의 탭에서 열면 어떻게됩니까? 한 번에 여러 개의 유효한 토큰을 세션에 보관합니까? –

+0

thats 아주 좋은 질문, 솔직히 말해서 한 토큰을하는 방법을 알아 내려고 노력하고 있습니다. 현재 세션에 좋은 토큰이 있습니다. 아약스가 유일한 문제가 아니라는 점을 여러분의 질문이 생각합니다. –

답변

2

현재 접근 방법을 따르고 싶다면 AJAX 요청을 할 때마다 보안 토큰을 생성하고 AJAX 응답으로 반환하고 숨겨진 경우 가져올 때 보안 토큰을 주입 할 수 있습니다. 그러나 보안 토큰에 대한 현재 접근법을 다시 생각해 보겠습니다. Here 당신은 OSWAP 위키에서 그것에 관한 몇 가지 팁을 가지고 있습니다.

+1

http://csrf.htmlpurifier.org/ 이것이 유효한 해결책이라고 생각하십니까? –

+0

나는이 라이브러리를 알지 못했지만, 좋은 옵션 인 것 같다. 고마워. 제 의견으로는, 저는 그 일을하지 않을 것입니다. 그것을 도서관에 위임하는 것이 더 좋으며, 나중에 필요하다면 그것을 구축하는 것이 낫습니다. – Matias

+0

당신이 제안한 라이브러리는 PHP로 서버 측에서 생성 된 폼을 다시 작성하기 때문에 클라이언트 측 폼/아약스 요청에는 도움이되지 않습니다. – zcrar70

관련 문제