나는 스패머가 컬을 사용하여 내 사이트에 특정 등록 페이지를 다운로드하고있을 것이라고 읽었습니다. 특정 페이지가 htaccess 또는 다른 방법을 통해 CURL되는 것을 차단할 수있는 방법이 있습니까?특정 페이지의 말림을 어떻게 차단합니까?
답변
curl이 사용자 에이전트, 쿠키 등을 보낼 수있는 기능을 가지고 있기 때문에 컬을 차단하는 것이 불가능하다고 생각합니다. 이해한다면 정상적인 사용자를 완전히 에뮬레이션 할 수 있습니다.
양식 보호가 걱정되면 양식 제출시 자동으로 제출되는 임의의 토큰을 생성 할 수 있습니다. 그런 식으로 등록을 자동화하는 스크립트를 만들려고 시도하는 사람은 먼저 스크립트를 긁는 것에 대해 걱정해야합니다.
이미 생성 된 임의의 토큰이 있습니다. 그래도 고마워. – 55skidoo
Oren에 따르면 스패머는 사용자 에이전트를 위조 할 수 있기 때문에 사용자 에이전트 문자열을 차단할 수 없습니다. 여기서 전형적인 해결책은 일종의 CATPCHA입니다. 이들은 흔히 뒤죽박죽 된 이미지 (비 시각적 인 형태가 존재 함)이지만 (StackOverflow 포함) 사이트는 당신이 인간임을 증명하기 위해 필사적으로 사용합니다.
보안 문자를 인식하고 있지만 원칙적으로이를 피하려고합니다. 스패머는 사용자가 더 어려워서는 안됩니다. 이상주의, 알아! 관리자 사이트에서 지혜는 잘못 들었을 수도 있습니다. 처음에는 "말림"을 포함하는 htaccess 문을 작성하여 차단할 수 있습니다. 아마도 webmasterworld.com의이 비트처럼 : RewriteCond % {HTTP_USER_AGENT}^(curl|Dart? CommunicationsxEnfish | htdig | Java | larbin) [NC, OR] - 나는 htaccess를 말하지 않습니다. – 55skidoo
55skidoo, 내가 말했듯이 알려진 사용자 에이전트 차단은 시간 낭비라고 생각합니다. 이것은 스패머가 변경할 수있는 간단한 구성 옵션입니다. –
오케이, 오해해서 죄송합니다. 따라서 본질적으로 "HTTP 요청이 'curl ...'으로 시작되고 등록 URL이 포함 된 경우 액세스를 허용하지 않는 htaccess 문을 작성하는 방법은 없습니다." 이 질문은 아마 htaccess에 대한 나의 무지를 배신합니다. – 55skidoo
CURL에는 약점이 있습니다.이를 이용하면 브라우저처럼 자바 스크립트를 실행할 수 없습니다. 그래서 당신은이 사실을 활용할 수 있습니다. reg 페이지에 처음 착륙했습니다. 서버 사이드 코드에서 쿠키를 확인하십시오. 브라우저에 자바 스크립트 코드를 보내면이 코드는 쿠키를 설정하고 리디렉션을 수행합니다/reload ... 서버 측을 다시로드 한 후 쿠키를 확인하고 브라우저를 발견하면 찾을 것입니다. 쿠키 생성을 말아서 처음부터 다시로드/리디렉션하지 마십시오.
나는 컬과 브라우저를 구별하기 위해 자바 스크립트를 사용한다.
- 1. 페이지의 특정 블록에 어떻게 링크합니까?
- 2. I/O 작업은 어떻게 차단합니까?
- 3. 하나의 SELECT가 다른 SELECT를 어떻게 차단합니까?
- 4. ASP.NET 버튼으로 인한 포스트 백을 어떻게 차단합니까?
- 5. .htaccess 특정 페이지의 SSL
- 6. 말림을 사용하여 페이지에서 숨겨진 입력 값 받기
- 7. 자바 소켓이 패널을 차단합니까?
- 8. 특정 페이지의 특정 이름을 리디렉션하기위한 htaccess 규칙
- 9. 특정 페이지의 drupal jQuery 1.4
- 10. 특정 페이지의 요청 유효성 확인
- 11. 특정 페이지의 drupal jQuery 1.4
- 12. 웹 페이지의 특정 필드를 모니터링
- 13. 특정 페이지의 체크 박스 숨기기
- 14. 특정 .net 페이지의 잘못된 viewstate
- 15. php file_put_contents() 페이지의 특정 ID
- 16. SslStream.ReadByte()가 스레드를 차단합니까?
- 17. NSURLConnection이 메인 스레드를 차단합니까?
- 18. LabVIEW가 Qt 신호를 차단합니까?
- 19. Apache가 I/O를 차단합니까?
- 20. NSOperation은 UI 페인팅을 차단합니까?
- 21. 웹 페이지의 특정 블록/일부를 어떻게 인쇄 할 수 있습니까?
- 22. 모든 페이지의 특정 행을 반복 인쇄
- 23. Javascript/Jquery를 사용하여 페이지의 특정 위치로 스크롤
- 24. 레일즈에서 페이지의 나머지 부분이 특정 정규 표현식과 일치하지 않는 경우에만 페이지의 섹션을 어떻게 포함시킬 수 있습니까?
- 25. .htaccess를 사용하여 특정 페이지의 HTTPS 제어
- 26. 사용자가 FB.Connect.logout에서 "닫기"를 클릭 할 때까지 어떻게 차단합니까?
- 27. 내 웹 사이트의 모든 페이지/이미지를 어떻게 차단합니까?
- 28. DispatcherTimer가 UI가 업데이트되지 않도록 차단합니까?
- 29. Application_Start가 들어오는 모든 요청을 차단합니까?
- 30. thread.join()이 다른 클라이언트를 차단합니까?
이전 질문을 읽고 올바른 대답을 수락하면 좋을 것입니다. –
죄송합니다. 에티켓에 익숙하지 않았습니다. 그래서 나는 다음에 그렇게 할 것입니다. – 55skidoo
6 개 중 4 개 질문에 대해 즉각적으로 회신하며 2 회는 만족스런 답변을 얻지 못했고 2 회는 나 자신에게 대답하는 것을 끝내 었습니다. (정답을 알 수있는 의견을 통해 힌트를 얻었으며 최선을 다해 "감사합니다. "코멘트 란에 – 55skidoo