HTTP POST 또는 GET 요청이 HTML 양식 제출 등의 결과인지 여부를 판별하는 방법은 (Java Servlet에서) 있습니까?HTML 양식에서 제출 된 HTTP 요청과 클라이언트에서 제출 된 HTTP 요청을 구별하는 방법은 무엇입니까?
답변
(가 자신의 에이전트 문자열을 가지고 가정) 수 + 쿠키.
당신이 할 수있는 일은 nonce을 설정하고 양식의 숨김 필드로 사용하십시오. 그런 다음 양식과 함께 전송되는 쿠키에 적용합니다. 쿠키는 숨겨진 필드에 연결되어야하며 일종의 nonce도 포함해야합니다. 마지막으로 양식이 제출되면 쿠키와 숨겨진 필드를 확인하고 해당 필드가 올바른지 확인할 수 있습니다. 원하는 경우 양식에 대한 원래 요청의 IP 주소와 사용자 에이전트에 연결하십시오. 이 모든 것을 약간의 자바 스크립트로 양념을 칠 수도 있습니다. 숨겨진 필드를 비워 두었다가 서버에서 숨겨진 필드 nonce를 요청하려면 일부 아약스를 사용하십시오.
이 방법은 완벽하지는 않지만 80 % -90 %의 속도를 얻을 수 있습니다. 적절한 HTTP 기술을 가진 사람이 여전히 스푸핑 할 수 있습니다.
하지만 질문을 제기하는 이유는 무엇입니까? 그 수준에서 요청을 차별화하려는 이유는 무엇입니까?
또는 사용자가 "제출"버튼을 눌렀는지 여부를 실제로 확인하려고합니까? 이 경우 양식 메서드에 따라 제출 버튼의 이름/값 쌍이 요청 엔터티/쿼리 문자열에 있어야합니다.
나는 클라이언트 자체가 공동 운영이 정말
하지 않음 (일부 헤더를 설정 클라이언트를 의미)하지 않는 한 불가능하다고 생각합니다. 사용자 에이전트 문자열을 확인할 수는 있지만 호출자가 설정할 수 있습니다.
글쎄, 당신은 당신이 숨겨진 양식 필드와 함께 할 가능성이 할 수있는 에이전트 문자열을보고 그것이 browsr 출신 있는지, 또는 클라이언트 응용 프로그램에서
클라이언트를 제어 할 수 있으면 보낸 사람을 식별하는 사용자 지정 헤더를 첨부 할 수 있습니다.
XmlHTTPRequests를 만들 때 일부 JavaScript 라이브러리가 이미이를 수행하므로 표준 요청과 다른 Ajax 호출을 처리 할 수 있습니다.
들어오는 각 요청의 헤더를 검사하여 사용할 수있는 것이 있는지 확인하십시오.
일부 자바 스크립트를 사용하여 값을 설정하십시오.
합법적 인 다른 액세스 방법이나 위조 된 공격 (예 : 일반 사용자처럼 보이게하려는 로봇 또는 해커)에 대해 정체를 나타내려고하는지 여부는 분명하지 않습니다.
첫 번째 경우 keprao에는 헤더를 검사하기위한 훌륭한 조언이 있습니다. 두 번째 경우에는 기본적으로 요청을 구분할 수있는 방법이 없습니다. 로봇은 captcha 또는 인증으로 방해받을 수 있습니다.
- 1. HTML 양식에서 제출 된 데이터는 어떻게 처리합니까?
- 2. HTML 양식에서 다중 제출 사용 안함
- 3. 양식에서 제출 값을 편집하는 방법은 무엇입니까?
- 4. QtWebkit : HTTP 요청을 추적/수정하는 방법은 무엇입니까?
- 5. HTML http 요청과 XML http 요청 사이의 보안 처리 차이점
- 6. (jQuery?)가 포함 된 이벤트에 http 요청
- 7. 제출 된 양식의 내용 변경 제출
- 8. HTTP 요청을 추적하는 방법은 무엇입니까?
- 9. Adobe HTTP 양식 제출 - Windows 인증
- 10. HTML 폼에서 JSON 데이터 가져 오기 HTTP POST로 제출
- 11. Asp.Net 4.0/IIS7에서 압축 된 HTTP 요청을 지원하는 방법은 무엇입니까?
- 12. HTTP 클라이언트가 HTTP 클라이언트에서 깨진 네트워크 연결을 감지하는 HTTP 서버
- 13. 제출 된 필드 비활성화
- 14. NSLog에 제출 된 앱
- 15. 몇 가지 양식에서 이벤트 제출
- 16. html 제출 버튼이나 자바 스크립트없이 제출
- 17. 양식에 제출 된 정보에서 div에 테이블을 만드는 방법은 무엇입니까?
- 18. asp.net 양식에서 특정 필드 제출 금지
- 19. HTML 양식 제출
- 20. HTTP 요청을 HTTP 응답에 매핑
- 21. 백그라운드 HTTP 요청을 분리하는 방법
- 22. http와 cli 요청을 구별하는 방법은 무엇입니까?
- 23. HTML 양식 제출
- 24. 이메일 ID에 제출 된 양식 세부 정보를 보내는 방법은 무엇입니까?
- 25. 사용자로부터 제출 된 데이터 저장
- 26. PHP 양식 : 제출 된 정보
- 27. 대응하는 HTTP 파이프 라인 요청과 일치하는 HTTP 응답
- 28. Django에서 중단 된 HTTP 요청을 올바르게 처리하는 방법
- 29. HTTP PUT 요청을 포맷하는 방법은 무엇입니까?
- 30. HTTP POST 요청을 보내는 방법은 무엇입니까?
더 많은 정보를 얻으면 더 나은 답변을 얻을 수 있습니다. 왜이 작업을 수행하고 싶습니까? –