2011-03-10 2 views
0

내 사이트에이 양식이 있습니다. 사용자가 로컬 사본에서 양식을 제출하지 못하도록하고 싶습니다. 다른 도메인 (크로스 사이트 스크립팅)에서 양식을 제출하십시오.HTTP_REFERER를 사용하여 동일한 서버에서 제출 된 양식을 확인하는 방법은 무엇입니까?

HTTP_REFERER는 위조하기 쉽기 때문에 신뢰할 수 없습니다.

정보를 제출하기 직전에 서버를 호출하여 양식이 제출 된 곳을 확인하는 아이디어가 있습니다. 그러나 나는 그 좋은 생각이라면 그렇게 확신하지 못한다. 감사합니다. ilanko

답변

0

이것은 CSRF이라고하며 일반적으로 양식 내에 input이 숨겨져 있습니다. 상기 input의 값은 서버 측에 할당되고 세션에 저장됩니다. 양식 제출시이 두 값이 비교되고 양식 제출이 동일 할 경우에만 양식 제출이 계속됩니다.

+0

감사합니다.하지만 서버 세션 시간 초과로 인해 소스를보고 양식을 저장하고 유효한 숨겨진 입력을 포함하여 로컬 복사본을 제출할 수 있습니다. – ilanko

+0

@ilanko 그건 불가능합니다. 페이지를 로컬로 제출하면 완전히 새로운 세션을 갖게됩니다. –

관련 문제