사용자를위한 이메일 주소를 표시하지만 로봇에서 숨기는 방법은 무엇입니까? PHP, JavaScript 또는 jQuery를 사용하여 단순히 수행하는 방법이 있습니까?

StackOverflow https://stackoverflow.com/questions/1873992

문제

PHP, JavaScript 또는 JQuery를 사용하여 우아하고 쉽고 간단한 방법이 있습니까?

도움이 되었습니까?

해결책

PHP Imagestring () 함수를 사용하여 이미지를 만들 수 있습니다.

<?php
// Create a 100*30 image
$im = imagecreate(120, 30);

// White background and blue text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// Write the email address at the top left
imagestring($im, 5, 0, 0, 'test@test.com', $textcolor);

// Output the image
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

다른 팁

이 작업을 수행하는 방법에는 여러 가지가 있습니다. 우리는 Python/JavaScript를 통해 Som Luck Obfuscating 소스를 가졌습니다. 또 다른 더 간단한 인기는 CSS 유니 코드 비디 기술입니다.

div.contact { unicode-bidi:bidi-override; direction: rtl; }
<div class="contact">moc.rab@oof</div>

인쇄 :

foo@bar.com

당신은 조사하고 싶을 수도 있습니다 Recaptcha mailhide. PHP에서 사용하기 쉽습니다.

웹 페이지에서 텍스트로 이메일 주소를 쓰지 마십시오!

그리고 브라우저 봇은 반드시 JS를 활성화 시켰습니다 -_-

PHP에서 구현 된 가장 까다로운 HTML 엔티티 및 Urlencode를 사용한 난독 화 :http://hcard.geekhood.net/encode/

원천:http://code.google.com/p/cardvalidator/source/browse/trunk/encode/index.php

내가 사용하는 또 다른 접근법은 다음과 같습니다.

<a href="mailto:me@myserver.removethis.com">
<script>[…] a.href = a.href.replace(/removethis\./,'');</script>

두 기술 모두 사용자가 완벽하게 액세스 할 수 있고 클릭 가능한 링크를 제공한다는 점은 주목할 가치가 있습니다.

이름 @example.com을 "예제의 이름으로 dot com"으로 변경해 볼 수 있습니다.

그러나 로봇은이를 쉽게 설명 할 수 있습니다.

그렇지 않으면, 당신이 진정으로 동기를 부여한 경우 이메일 주소의 동적 이미지를 표시 할 수 있습니다.

완벽한 솔루션은 아니지만 Enkoder (http://hivelogic.com/enkoder)는 이것에 매우 유용합니다. JavaScript를 사용하여 주소를 난독 화합니다.

확인. 잠시 후, 나는 이것을 쉽게 수행하는 방법에 대한이 블로그 기사를 찾았습니다.http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate--mail-ddresses-compared/그리고 스팸 수신에 얼마나 많은 영향을 미칩니다 ..

나는 이것이 위에 주어진 정보를 보완 할 수 있다고 생각한다 .. 건배!

이게 작동할까요 ??

이와 같은 것을 사용합니다

<span>myaddress</span><span>@</span><span>mydomain.com</span>

이것은 링크로 서서는 아니지만 여전히 페이지의 인간의 눈으로 인식 할 수 있으며 로봇에 의해 구문 분석되지 않을 것입니다. 당신은 그것을 확인하지 않았습니다. 아마도 해당 문자열을 void에 삽입하여 내용을 구문 분석하여 주소를 작성하는 함수에 바인딩 할 수 있습니다.

단지 빠른 생각 ...

이것은하기가 어렵습니다. 이미지를 사용하지 않으면 브라우저에서 인간으로 읽을 수있는 모든 것을 로봇으로 인간으로 읽을 수 있습니다. 따라서 HTML 소스의 어떤 방식 으로든 전자이자 메일을 스크램블링 한 다음 JavaScript 기능을 사용하여 페이지 렌더링에서 동적으로 스크램블을 제거하면 DOM을 완전히 렌더링하는 로봇에 의해 패배 할 것입니다.

최근까지 나는 위의 방법으로 좋은 성공을 거두었고 스팸을 보지 못했습니다. 그러나 최근에 나는 주소가 픽업 된 것으로 보인다. 따라서 이메일 트롤러가 이제 전체 DOM 렌더링을하고 있다고 가정 할 수 있습니다.

결론적으로 - 이미지가 가장 좋을 것입니다 (100%는 아니지만)

이 문제에 대한 간단한 jQuery 솔루션은 다음과 같습니다.

<script type="text/javascript">
$(document).ready(function() {
    str1="mailto:";
    str2="info";
    str3="@test.com";
    $("#email_a").attr("href", str1+str2+str3);

});
</script>

<a href="#" id="email_a"><img src="sample.png"/></a>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top