2011-10-05 5 views
0

간단한 질문 : 내 사이트에 게시 된 양식 데이터가 사이트 양식 페이지가 아닌 cURL을 통해 이루어 졌는지 확인하는 방법.cURL을 사용하여 게시물이 수행되는지 확인하는 방법

는 (예) 사용자는 컬을 실행 -H "호스트 : http://mysite"POST "포스트 데이터"사이트의 모든 형태에 대한 http://mysite을.

Referer 및 User Agent를 설정할 수 있으므로 필터링 기준으로 적합하지 않다고 생각합니다. 어떤 제안이나 해결책도 환영합니다.

감사합니다. & 건배 !!

+2

불가능 봐야한다? – Patrick87

답변

0

동적으로 생성하고 사용자 세션에 저장하는 토큰을 양식에 추가하십시오. 사용자가 양식을 제출하면 양식의 토큰이 세션에있는 토큰과 일치하는지 점검하십시오. 이 토큰은 양식이 렌더링 될 때마다 변경되어야합니다. 그러면 양식을 한 번만 제출할 수 있습니다.

부실 토큰을 사용하여 양식을 제출하는 경우 양식이 부실하다는 오류 메시지와 함께 다시 양식을 다시 보내고 작업을 다시해야합니다.

Curl은 브라우저를 에뮬레이션 할 수 있으므로 아무 것도 100 % 효과적이지는 않지만 대부분의 경우를 다루고 있습니다.

curl이 실행하지 않으므로이 토큰 필드를 JavaScript로 채울 수도 있습니다.

+0

명성 ...하지만 익명 사용자가 입력 할 수있는 양식이나 등록 양식이 내가 운이 좋지 않을 것이라고 생각하는 경우 CAPTCHA와 같은 사람 인식 접근법은 나처럼 이상적인 것이 아닙니다. 결정을 내릴 수 없거나 하나를 추가 할 것을 제안 할 수 없습니다. – optimusprime619

+1

세션은 익명 사용자에게 잘 작동합니다.이 접근 방식이 작동하려면 세션을 인증 할 필요가 없습니다. – BeWarned

0

양식 제출 버튼이 트리거되었는지 확인해야 할 것 같군요.

+0

좋은 하나 ...하지만 자바 스크립트를 비활성화하여 거짓 경보를 설정하고 양식을 작성하지 않을 수 있습니까? – optimusprime619

+0

Javascript를 사용하여 양식을 확인한 경우 예. 양식 게시 데이터에 "& clicked = true"를 추가 할 수도 있습니다. – Romoku

0

당신이 우리에게 말하지 않기 때문에 당신의 보안 관심사가 확실하지 않습니다. 웹 서버에 관한 한 cURL은 사실상 다른 웹 브라우저입니다. 단지 마우스가 아닌 명령 행 인수에 의해 제어되는 것입니다.

은 아마 당신은 Cross-Site Request Forgery로부터 자신을 보호하는 방법에 대한 우려와 수행 할 OWASP CSRF Prevention Cheat Sheet

+0

내 질문에 대한 초록이 유감 스럽다. 내 친구가 봄 mvc에서 일하고있다.이 문제는 말풍선을 반복하고 등록 페이지의 DB를 범람시키는 것이 가능하다는 의견이 제기되었다. 그것에 대해 생각하고 그것은 내 PHP 코드에서 가능할 수도 있습니다 ... 그래서 그것에 대해 물어 호기심을 느꼈습니다 .. – optimusprime619

+1

홍수/DoS 보호는 클라이언트 감지와 완전히 다른 개념입니다. 이론적으로 모든 클라이언트는 DoS를 시도 할 수 있습니다. cURL을 감지해도 큰 도움이되지 않습니다. 어쩌면 특정 시간대에 너무 많은 요청을하는 주소를 차단하는 apache httpd-guardian (또는 선택한 웹 서버와 유사)을 볼 수 있습니다. http://apache-tools.cvs.sourceforge.net/apache-tools/ – Cheekysoft

+0

true ...하지만 제 경우에는 너무 구체적입니다 ... 어쩌면이 질문을 닫고 시간이 매우 모호해질 수 있습니다 .... 답변에 대해 모두 감사하고 이것에 대한 깊은 통찰력을 제공하고이 스레드가 도움을 주거나 누군가를 교육하기를 바랍니다. 그렇지 않으면 나만큼이나 .. – optimusprime619

관련 문제