2012-08-31 4 views
0

설정하면 스팸봇이 내 이메일 주소 전체에서 크롤링하는 것을 방지 할 수 있습니까? display: none? 작은 미니 게임에 대한 아이디어가 있었는데, 사용자가 전자 메일 링크를 클릭하면 하나 또는 두 개의 "당신은 봇이 아니겠습니까?"라는 질문이 표시됩니다. 일단 이것들이 응답되면, 실제 링크를 표시합니다.이메일 주소를 숨겨서 전투 스팸봇 (디스플레이 : 없음)

문제는 보이지 않더라도 분명히 HTML에 있기 때문에 봇이 링크를 볼 수 있다고 가정합니다. 이 문제를 해결할 방법이 있습니까?

또한 나는 이러한 질문이 페이드 인되기를 원하지만, CSS3 전환은 디스플레이 또는 가시성 속성을 지원하지 않는다는 것을 이해합니다. jQuery에 의존해야합니까? 그렇다면 누군가 display: none에서 display: block으로 전환 할 때 요소가 사라질 수있는 대안으로 안내 할 수 있습니까?

+0

전자 메일 주소를 숨기는 가장 좋은 방법은 서버 쪽 코드에 있으며 사용자가 대신 양식을 작성하게하십시오. 물론 똑똑한 스팸봇도 코멘트 양식을 작성할 수 있습니다. – Blazemonger

답변

0

아니요, display: none은 작동하지 않습니다.

이 문제를 해결하는 유일한 방법은 HTML에 포함시키지 않는 것입니다. 이를 이미지로 만들거나 자바 스크립트를 사용하여 브라우저의 휴먼 뷰어가 올바르게 볼 수 있도록 개별적으로 배치 할 수있는 개별 요소로 디 스크램블합니다.

이미지 경로로 이동하면 스팸봇이 이미지를 읽을 수 있으므로 좋은 오래된 captcha와 같은 임의의 이미지로 약간 혼란스럽게해야합니다.

visibility/display을 지원하지 않는 CSS3와 관련하여 opacity 속성을 사용하여 이메일 주소를 표시하기로 결정했지만 콘텐츠를 페이드 아웃 할 수는 있습니다. opacity은 CSS3 전환에서 완벽하게 지원됩니다.

0

대부분의 크롤러는 비주얼 렌더링 된 버전이 아니라 페이지의 마크 업을 분석합니다. display: none을 사용하면 거의 효과가 없습니다.

또한 페이딩 효과에 jQuery를 사용할 필요가 없습니다. 불투명도를 설정하고 다음을 사용하면 멋지게 작동합니다.

-webkit-transition: opacity 0.2s linear; 
     transition: opacity 0.2s linear; 
+0

불투명도 전환이 있음을 알고 있지만,이 시나리오에서는 요소가 보이지 않는 것과 대조적으로 실제로 문서에없는 것으로 가정합니다. – Bobe

+1

엘리먼트의 CSS 속성이'display : none' 일 때 여전히 문서에있는 것을 알 수 있습니다. 그렇습니까? – BenM

+0

@Bobe'display : none'은 문서에서 요소를 제거하지 않고 오직 시각적 요소 만 제거합니다. (죄송합니다 @ BenM도 나를 때렸습니다 +1) –

0

전자 메일 주소를 표시하는 대신 연락처 양식을 구현할 수 있습니다. 보안 문자 또는 허니팟 방식으로 해당 양식을 보호 할 수 있습니다. 또한 자바 스크립트를 사용하여 양식을 렌더링 할 수도 있습니다. 왜냐하면 많은 봇이 자바 스크립트를 실행하지 않기 때문입니다 (희망 사항).

+0

그래, 양식을 사용할 수는 있지만 다른 방법으로 실험하고 싶다. – Bobe

+0

자바 스크립트에서도 전자 메일 주소를 혼란스럽게 할 수 있습니다. Javascript를 사용하여 추가하거나 심지어 AJAX 요청의 결과로 추가하는 경우 봇이 전자 메일 주소를받는 것이 더 어려워집니다. – GolezTrol