내 홈페이지에서이 방법을 사용하여 전자 메일을 스팸봇으로부터 숨 깁니다.
<a href="admin [at] example.com"
rel="nofollow"
onclick="this.href='mailto:' + 'admin' + '@' + 'example.com'">Contact me</a>
당신이 그것에 대해 어떻게 생각하십니까? 효과적입니까? 다른 방법을 알고 있거나 사용하고 있습니까?
내 홈페이지에서이 방법을 사용하여 전자 메일을 스팸봇으로부터 숨 깁니다.
<a href="admin [at] example.com"
rel="nofollow"
onclick="this.href='mailto:' + 'admin' + '@' + 'example.com'">Contact me</a>
당신이 그것에 대해 어떻게 생각하십니까? 효과적입니까? 다른 방법을 알고 있거나 사용하고 있습니까?
답변:
이것은 서버 측 포함과 함께 내가 사용한 방법입니다. 예 <!--#include file="emailObfuscator.include" -->
를 emailObfuscator.include
들어 다음 이 포함됩니다.
<!-- // http://lists.evolt.org/archive/Week-of-Mon-20040202/154813.html -->
<script type="text/javascript">
function gen_mail_to_link(lhs,rhs,subject) {
document.write("<a href=\"mailto");
document.write(":" + lhs + "@");
document.write(rhs + "?subject=" + subject + "\">" + lhs + "@" + rhs + "<\/a>");
}
</script>
주소를 포함하기 위해 JavaScript를 사용합니다.
<script type="text/javascript">
gen_mail_to_link('john.doe','example.com','Feedback about your site...');
</script>
<noscript>
<em>Email address protected by JavaScript. Activate JavaScript to see the email.</em>
</noscript>
2005 년부터 Gmail을 통해 이메일을 받고 있기 때문에 스팸은 문제가되지 않습니다. 따라서이 방법이 얼마나 효과적인지 말할 수 없습니다. 이 그래프를 생성 한이 연구 를 읽으십시오 (구식이기는하지만).
emailObfuscator.include
합니까? 평범한 .html로 작성하는 것과 같지 않습니까? (아마도 예일 뿐입니 까?) 또한 <!--
-->
스크립트 내에서 html 주석을 사용하는 이유는 무엇입니까? 마지막으로 왜 <script>
태그 중 하나 가 소문자이고 다른 태그가 대문자 <SCRIPT>
입니까? 이러한 방법이 봇이나 무언가를 혼동시키는 데 도움이됩니까?
CSS에서 컨텐츠 및 속성 작업 :
.cryptedmail:after {
content: attr(data-name) "@" attr(data-domain) "." attr(data-tld);
}
<a href="#" class="cryptedmail"
data-name="info"
data-domain="example"
data-tld="org"
onclick="window.location.href = 'mailto:' + this.dataset.name + '@' + this.dataset.domain + '.' + this.dataset.tld; return false;"></a>
자바 스크립트를 사용 중지하면 클릭 이벤트 만 작동하지 않고 이메일이 계속 표시됩니다.
또 다른 흥미로운 접근 방식은 (적어도 클릭 이벤트가없는) 오른쪽에서 왼쪽으로 표시하여 쓰기 방향을 무시하는 것입니다. 이에 대한 자세한 내용 : https://en.wikipedia.org/wiki/Right-to-left_mark
이 방법을 보고 , 영리하고 CSS를 사용하십시오.
CSS
span.reverse {
unicode-bidi: bidi-override;
direction: rtl;
}
HTML
<span class="reverse">moc.rehtrebttam@retsambew</span>
위의 CSS는 읽기 방향을 무시하고 텍스트를 올바른 순서로 사용자에게 표시합니다.
그것이 도움이되기를 바랍니다.
건배
나는 이것과 완전히 다른 것을 가지고 있습니다. MailHide 를 사용 합니다.
MailHide는 Google의 시스템으로, 사용자가 reCAPTCHA 테스트를 완료 한 후 이메일을 공개해야합니다.
원래 내 생각은 아니지만 저자를 찾을 수 없습니다.
<a href="mailto:coxntact@domainx.com"
onmouseover="this.href=this.href.replace(/x/g,'');">link</a>
원하는만큼 x를 더하십시오. 읽기, 복사 및 붙여 넣기에 완벽하게 작동하며 봇은 읽을 수 없습니다.
당신이 가질 수있는 유일한 방법은 전자 메일 주소로 보내는 스크립트에 제출하는 양식 인 Contact Me 페이지를 만드는 것입니다. 그렇게하면 주소가 전혀 공개되지 않습니다. 이것은 어떤 이유로 바람직하지 않을 수 있지만 꽤 좋은 해결책이라고 생각합니다. 사이트에서 다른 사람의 이메일 주소를 내 메일 클라이언트로 복사 / 붙여 넣어야하는 경우가 종종 있습니다. 오히려 사이트의 양식을 통해 올바르게하고 싶습니다. 또한이 방법을 사용하면 익명으로 의견을 보낼 수 있습니다. 보안 문자와 같은 일종의 안티 봇 방식을 사용하여 양식을 보호하십시오. SO에 대해서는 여기에서 많이 논의했습니다.
웹 페이지의 봇으로부터 전자 메일 주소를 안전하게 유지 하시겠습니까?를 참조하십시오 .
Facebook 및 다른 사람들이 귀하의 이메일 주소 이미지를 렌더링하는 방식이 마음에 듭니다.
나는 또한 과거에 Enkoder 를 사용 했습니다. 정직한 것이 매우 좋다고 생각했습니다!
PHP 지원이 있다면 다음과 같이 할 수 있습니다 :
<img src="scriptname.php">
그리고 scriptname.php :
<?php
header("Content-type: image/png");
// Your email address which will be shown in the image
$email = "you@yourdomain.com";
$length = (strlen($email)*8);
$im = @ImageCreate ($length, 20)
or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
$background_color = ImageColorAllocate ($im, 255, 255, 255); // White: 255,255,255
$text_color = ImageColorAllocate ($im, 55, 103, 122);
imagestring($im, 3,5,2,$email, $text_color);
imagepng ($im);
?>
나는 많은 사람들이 내 대답을 좋아하지 않는다는 것을 알고 있지만 엄지 손가락을 아래로 내리기 전에 여기에 요약 된 사항을 고려하십시오.
스패머는 쉽게 머신을 읽을 수있는 모든 머신을 쉽게 읽을 수 있습니다. 그들의 행동은 우리에게는 어리석은 것처럼 보이지만 어리석은 사람들은 아닙니다. 혁신적이고 수완이 뛰어납니다. 그들은 전자 메일을 수집하기 위해 봇을 사용하는 것이 아니라, 처분 할 수있는 다양한 방법을 가지고 있으며, 게다가 신선한 전자 메일 목록을 지불하기 만하면됩니다. 의미하는 바는 전 세계적으로 수천 명의 블랙 햇 해커가 작업을 수행하도록했습니다. 사람들은 다른 사람들의 브라우저 화면을 긁어 악성 코드를 코딩 할 준비가되어 결국 쓸모없는 방법을 만들어냅니다. 이 스레드는 이미 10 명 이상의 사람들이 읽었으며 우리를 비웃고 있습니다. 그들 중 일부는 눈물을 흘리며 새로운 도전을 할 수 없다는 것을 알게 될 수도 있습니다.
결국 시간을 절약하려는 것이 아니라 다른 사람의 시간을 절약한다는 것을 명심하십시오. 이 때문에 여기에서 여분의 시간을 보내십시오. 작동하기 쉬운 마술 총알은 없습니다. 사이트에 100 명의 사람들의 전자 메일을 게시하는 회사에서 일하고 있으며 하루에 1 개의 스팸 전자 메일을 줄일 수 있다면 1 년에 약 36500 개의 스팸 전자 메일이 사용됩니다. 이러한 이메일을 삭제하는 데 평균 5 초가 걸리면 매년 약 50 시간의 근무 시간을 말합니다. 감소 된 성가심은 말할 것도 없습니다. 그렇다면 이것에 몇 시간을 보내지 않겠습니까?
시간과 자산을 고려하는 것은 전자 메일을받는 사람과 여러분 만이 아닙니다. 따라서 전자 메일 주소를 난독 처리하는 방법을 찾아야합니다. 널리 사용되는 방법을 사용하여 전자 메일을 난독 처리하면 실제로 전자 메일을 해독하는 데 도움이됩니다. 결과적으로 크래커는 수만 또는 수십만 개의 신선한 이메일이 아니라도 수천 건의 손을 잡을 것입니다. 그리고 그들에게 돈을 얻을 것입니다.
계속해서 자신 만의 메소드를 코딩하십시오. 이것은 바퀴를 재발 명하는 것이 실제로 드문 경우입니다. 기계 판독 가능하지 않은 방법과 사용자 경험을 희생시키지 않으면 서 사용자 상호 작용이 필요한 방법을 사용하십시오.
나는 약 20 분 동안 내가 의미하는 바를 코드화했습니다. 이 예에서는 KnockoutJS를 사용했기 때문에 간단히 사용하고 직접 사용하지 않을 것입니다. 그러나 어쨌든 관련이 없습니다. 널리 사용되지 않는 맞춤형 솔루션입니다. 크래킹은 방대한 인터넷에서 단일 페이지에서만 작동하기 때문에 크래킹은 보상이되지 않습니다.
바이올린은 다음과 같습니다. http://jsfiddle.net/hzaw6/
아래 코드는 좋은 코드의 예가 아닙니다. 그러나 기계가 이해하기 어려운 간단한 코드 샘플 만 여기에서 전자 메일을 처리하기까지합니다. 그리고 그것이 가능할지라도 큰 규모의 집행을 위해 돈을 지불하지 않을 것입니다.
그리고 네, '정의되지 않은 또는 null 참조의 속성'속성 '을 가져올 수 없기 때문에 IE = lte8에서 작동하지 않는다는 것을 알고 있지만 실제 구현이 아닌 메서드 데모이므로 간단하지 않습니다. 프로덕션 환경에서 그대로 사용해서는 안됩니다. 더 시원하고 기술적으로 더 견고한 등을 직접 코딩하십시오.
아, 절대로 html 또는 javascript로 메일이나 이메일 이름을 지정하지 마십시오. 메일이나 이메일이라는 이름의 DOM과 창 객체를 긁어 전자 메일과 일치하는 항목이 있는지 확인하는 것은 너무 쉬운 방법입니다. 그렇기 때문에 전체 형식의 전자 메일을 포함하는 변수를 원하지 않는 이유는 이러한 변수를 할당하기 전에 사용자가 페이지와 상호 작용하도록하는 이유이기도합니다. 자바 스크립트 개체 모델에 DOM 준비 상태의 전자 메일 주소가 포함되어 있으면 스패머에 노출 된 것입니다.
HTML :
<div data-bind="foreach: contacts">
<div class="contact">
<div>
<h5 data-bind="text: firstName + ' ' + lastName + ' / ' + department"></h5>
<ul>
<li>Phone: <span data-bind="text: phone"></span></li>
<li><a href="#999" data-bind="click:$root.reveal">E-mail</a> <span data-bind="visible: $root.msgMeToThis() != ''"><input class="merged" data-bind="value: mPrefix" readonly="readonly" /><span data-bind="text: '@' + domain"></span></span></li>
</ul>
</div>
</div>
</div>
JS
function ViewModel(){
var self = this;
self.contacts = ko.observableArray([
{ firstName:'John', mPrefix: 'john.doe', domain: 'domain.com', lastName: 'Doe', department: 'Sales', phone: '+358 12 345 6789' },
{ firstName:'Joe', mPrefix: 'joe.w', domain: 'wonder.com', lastName: 'Wonder', department: 'Time wasting', phone: '+358 98 765 4321' },
{ firstName:'Mike', mPrefix: 'yo', domain: 'rappin.com', lastName: 'Rophone', department: 'Audio', phone: '+358 11 222 3333' }
]);
self.msgMeToThis = ko.observable('');
self.reveal = function(m, e){
var name = e.target.attributes.href.value;
name = name.replace('#', '');
self.msgMeToThis(name);
};
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
내가 가장 좋아하는 방법 중 하나는 PHP를 사용하여 전자 메일 주소를 난독 처리하는 것입니다. 고전적인 예는 문자를 HEX 값으로 변환하는 것입니다.
function myobfiscate($emailaddress){
$email= $emailaddress;
$length = strlen($email);
for ($i = 0; $i < $length; $i++){
$obfuscatedEmail .= "&#" . ord($email[$i]).";";
}
echo $obfuscatedEmail;
}
그런 다음 마크 업에서 간단히 다음과 같이 호출합니다.
<a href="mailto:<?php echo myobfiscate('someone@somewhere.com'); ?>"
title="Email me!"><?php echo myobfiscate('someone@somewhere.com');?> </a>
그런 다음 소스를 검사하면 즐겁게 놀랄 것입니다!
16 진수로 html 엔티티를 사용하여 문자를 숨길 수 있습니다 (예 : @ : & # x40). 이는 올바른 브라우저가 번역하므로 일반적인 솔루션 일 수 있으므로 편리한 솔루션입니다. 단점은 봇이 이론적으로 번역 할 수 있지만 약간 특이합니다. 나는 이것을 사용하여 내 블로그의 전자 메일을 보호합니다.
또 다른 해결책은 javascript 를 사용 하여 주소의 일부를 어셈블하고 주소를 즉시 디코딩하는 것입니다. 단점은 자바 스크립트가 비활성화 된 브라우저가 주소를 표시하지 않는다는 것입니다.
가장 효과적인 해결책은 image 를 사용하는 것이지만 사용자가 직접 주소를 복사해야하는 것은 고통스러운 일입니다.
자바 스크립트가 비활성화 된 사용자에 대해서만 단점 (@을 수동으로 작성) 만 추가하기 때문에 솔루션이 꽤 좋습니다 . 다음과 같이 더 안전 할 수도 있습니다.
onclick="this.href='mailto:' + 'admin' + '@' + 'domain.com'"
Spambots는 덜 알려진 방법이기 때문에 이것을 해석하지 않습니다. :)
먼저 CSS를 정의하십시오.
email:before {
content: "admin";
}
email:after {
content: "@example.com";
}
이제 이메일을 표시하려는 위치에 다음 HTML을 삽입하십시오.
<div id="email"></div>
그리고 타다!
CSS와 jQuery의 매우 간단한 조합을 사용하여 사용자에게 전자 메일 주소를 올바르게 표시하고 앵커를 클릭하거나 가리킬 때도 작동합니다.
HTML :
<a href="mailto:me@example.spam" id="lnkMail">moc.elpmaxe@em</a>
CSS :
#lnkMail {
unicode-bidi: bidi-override;
direction: rtl;
}
jQuery :
$('#lnkMail').hover(function(){
// here you can use whatever replace you want
var newHref = $(this).attr('href').replace('spam', 'com');
$(this).attr('href', newHref);
});
다음 은 실제 예입니다.
!-참조를 위해 이것을 추가하면 정보가 얼마나 오래되었는지 알지 못하지만 스크립팅을 사용할 필요가없는 몇 가지 간단한 솔루션에 대해 알려줍니다.
이것을 직접 검색 한 후이 페이지 와이 페이지를 발견했습니다.
http://nadeausoftware.com/articles/2007/05/stop_spammer_email_harvesters_obfuscating_email_addresses
이메일 주소를 바꾸어보십시오
일반 HTML 예 :
<bdo dir="rtl">moc.elpmaxe@nosrep</bdo>
Result : person@example.com
CSS를 사용하는 것과 동일한 효과
CSS:
.reverse { unicode-bidi:bidi-override; direction:rtl; }
HTML:
<span class="reverse">moc.elpmaxe@nosrep</span>
Result : person@example.com
이것을 앞에서 언급 한 방법과 결합하면 더 효과적 일 수도 있습니다
쉬운 방법 중 하나는 실제 문자 대신 HTML 엔터티를 사용하는 것입니다. 예를 들어 "me@example.com"은 다음과 같이 변환됩니다.
<a href="mailto:me@example.com">email me</A>
내 작업 버전은 다음과 같습니다.
대체 텍스트가있는 컨테이너를 어딘가에 만듭니다.
<div id="knock_knock">Activate JavaScript, please.</div>
그리고 DOM 맨 아래 (렌더링 작성)에 다음 스 니펫을 추가하십시오.
<script>
(function(d,id,lhs,rhs){
d.getElementById(id).innerHTML = "<a rel=\"nofollow\" href=\"mailto"+":"+lhs+"@"+rhs+"\">"+"Mail"+"<\/a>";
})(window.document, "knock_knock", "your.name", "example.com");
</script>
생성 된 하이퍼 링크를 지정된 컨테이너에 추가합니다.
<div id="knock_knock"><a rel="nofollow" href="your.name@example.com">Mail</a></div>
또한 다음은 축소 버전입니다.
<script>(function(d,i,l,r){d.getElementById(i).innerHTML="<a rel=\"nofollow\" href=\"mailto"+":"+l+"@"+r+"\">"+"Mail"+"<\/a>";})(window.document,"knock_knock","your.name","example.com");</script>
이메일 주소를 숨기는 가장 좋은 방법은 봇 프로그래머가이 "인코딩"을 발견하고 암호 해독 알고리즘을 구현할 때까지만 유효합니다.
JavaScript를 해석하는 크롤러가 많기 때문에 JavaScript 옵션이 오래 작동하지 않습니다.
답이 없습니다, imho.
기호 [at]
및 다른 변장 을 인식하는 봇이있을 수 있습니다 @
. 따라서 이것은 실제로 효과적인 방법이 아닙니다.
URL 인코딩 또는 HTML 문자 참조 (또는 둘 다)와 같은 일부 인코딩을 사용할 수 있습니다.
// PHP example
// encodes every character using URL encoding (%hh)
function foo($str) {
$retVal = '';
$length = strlen($str);
for ($i=0; $i<$length; $i++) $retVal.=sprintf('%%%X', ord($str[$i]));
return $retVal;
}
// encodes every character into HTML character references (&#xhh;)
function bar($str) {
$retVal = '';
$length = strlen($str);
for ($i=0; $i<$length; $i++) $retVal.=sprintf('&#x%X;', ord($str[$i]));
return $retVal;
}
$email = 'user@example.com';
echo '<a href="'.bar('mailto:?to=' . foo(','.$email.'')).'">mail me</a>';
// output
// <a href="mailto:?to=%2C%75%73%65%72%40%65%78%61%6D%70%6C%65%2E%63%6F%6D">mail me</a>
그러나 이들을 사용하는 것이 합법적이므로 모든 브라우저 / 이메일 클라이언트도 이러한 인코딩을 처리해야합니다.
링크를 마우스 오른쪽 버튼으로 클릭하고 "URL 복사"를 선택하면 작동합니까? 그렇지 않은 경우 이상적인 상황이 아닙니다 (mailto 링크를 거의 클릭하지 않고 전자 메일 주소를 복사하여 내 메일 응용 프로그램에 붙여 넣기를 선호하거나 특정 시점에 필요할 때마다 붙여 넣기를 선호 함).
예전에는 메일 주소를 온라인 (UseNet, 웹 등)으로 보호하는 편집증이 있었지만 요즘에는 더 많은 "스팸 대상"이 실제로 로컬 부분을 프로그래밍 방식으로 도메인과 일치시켜 생성한다고 생각합니다. 나는 때때로 메일 서버 로그를 훑어 본 것에 근거를두고있다. 존재하지 않는 주소에 대한 배달 시도는 꽤 적습니다 (주소 스크래핑이 널리 퍼져 있던 90 년대 후반 유즈넷에 매달린 스팸 미끼 버전 포함).
너무 많은 기술을 사용한 후에는 쉬운 방법과 매우 친숙한 것을 발견했습니다. 봇은 @ Símbolo를 검색하고 최근에는 변형을 검색하므로 2 가지 기술을 사용합니다.
이미지 alt는 alt = "@"가되어 봇은 이미지를 찾게되고 사람은 이미지를 일반 주소로 보게됩니다. 복사하면 이메일을 복사하고 작업은 돈이므로 코드는
<p>myname<img src="http://www.traidnt.net/vb/images/mail2.gif" width="11" height="9" alt="@" />domain.com</p>
메일을 인코딩하는 javascript를 출력하는 공개 라이센스 PHP 스크립트가 있습니다 : http://www.maurits.vdschee.nl/php_hide_email/ . 그런 다음 특정 메일을 php 함수로 쉽게 호출 할 수 있습니다.
먼저 자바 스크립트를 활성화했을 때만 전자 메일 주소가 표시되도록하십시오. 이런 식으로 자바 스크립트없이 읽을 수있는 일반 텍스트는 없습니다.
둘째, 안전한 기능을 구현하는 방법은 <button>
태그 에서 벗어나는 것 입니다. 이 태그는 태그 사이에 텍스트 삽입이 필요하므로 컴퓨터에서 읽을 수 있습니다. 대신 <input type="button">
onClick에 대한 자바 스크립트 핸들러로 시도하십시오 . 그런 다음 otherse가 언급 한 모든 기술을 사용하여 안전한 이메일 표기법을 구현하십시오.
다른 옵션은 "이메일 주소를 보려면 클릭하십시오"단추가있는 것입니다. 클릭하면 코드화 된 이메일 (HTML 코드의 문자)로 변경됩니다. 다시 클릭하면 'mailto : email'기능으로 리디렉션됩니다
선택 가능하고 선택 불가능한 이메일 주소가있는 마지막 아이디어의 코드화되지 않은 버전 :
<html>
<body>
<script type="text/javascript">
e1="@domain";
e2="me";
e3=".extension";
email_link="mailto:"+e2+e1+e3;
</script>
<input type="text" onClick="this.onClick=window.open(email_link);" value="Click for mail"/>
<input type="text" onClick="this.value=email;" value="Click for mail-address"/>
<input type="button" onClick="this.onClick=window.open(email_link);" value="Click for mail"/>
<input type="button" onClick="this.value=email;" value="Click for mail-address"/>
</body></html>
이것이 당신이 원하는 것이 있는지 확인하고 다른 사람들의 아이디어와 결합하십시오. 당신은 결코 확신 할 수 없습니다.
그리고 내 기능. 나는이 주제에 배치 된 답변을보고 그것을 만들었습니다.
function antiboteEmail($email)
{
$html = '';
$email = strrev($email);
$randId = rand(1, 500);
$html .= '<span id="addr-'.$randId.'" class="addr">[turn javascript on to see the e-mail]</span>';
$html .= <<<EOD
<script>
$(document).ready(function(){
var addr = "$email";
addr = addr.split("").reverse().join("");
$("#addr-$randId").html("<a href=\"mailto:" + addr + "\">" + addr + " </a>");
});
</script>
EOD;
return $html;
}
오른쪽에서 왼쪽으로 dir과 javascript 퍼팅이라는 두 가지 방법을 사용합니다.
옵션 1 : 이메일 주소를 여러 부분으로 나누고이 부분에서 JavaScript로 배열을 만듭니다. 그런 다음이 파트를 올바른 순서로 결합하고 .innerHTML 속성을 사용하여 이메일 주소를 웹 페이지에 추가하십시오.
<span id="email"> </span> // blank tag
<script>
var parts = ["info", "XXXXabc", "com", ".", "@"];
var email = parts[0] + parts[4] + parts[1] + parts[3] + parts[2];
document.getElementById("email").innerHTML=email;
</script>
옵션 2 : 이메일 텍스트 대신 이미지 사용
텍스트에서 이미지 작성자 웹 사이트 : http://www.chxo.com/labelgen/
옵션 3 : "@"대신 AT를 사용하고 ""대신 DOT를 사용할 수 있습니다.
즉 :
info(AT)XXXabc(DOT)com
JavaScript와 HTML이 혼합되는 것을 좋아하지 않기 때문에이 솔루션을 사용합니다. 지금은 잘 작동합니다.
아이디어 :- data
속성에 암호화 된 정보를 제공 하고 JS 내에서 해독 하여 더 복잡하게 만들 수 있습니다 . 이것은 단순히 글자를 바꾸거나 뒤집기 만하면됩니다.
HTML :
<span class="generate-email" data-part1="john" data-part2="gmail" data-part3="com">placeholder</span>
JS :
$(function() {
$('.generate-email').each(function() {
var that = $(this);
that.html(
that.data('part1') + '@' + that.data('part2') + '.' + that.data('part3')
);
});
});
사용해보십시오 : http://jsfiddle.net/x6g9L817/
HTML_CHARACTER는 어떻습니까? :
joe@mail.com
출력
joe@mail.com
나는 또 다른 대답을 제공해야합니다. 나는 방금 재미있게 놀았습니다.
많은 공통 문자 표에서 문자 @와 az가 두 번 이상 다시 나타납니다. 원본 문자를 새 매핑에 매핑하고 스팸 봇이 전자 메일이 무엇인지 파악하기 어렵게 만들 수 있습니다.
문자열을 반복하고 문자의 문자 코드를 얻은 다음 65248을 추가하고 숫자를 기반으로 HTML 엔터티를 작성하면 사람이 읽을 수있는 전자 메일 주소가 나타납니다.
var str = 'john.doe@email.com';
str = str.toLowerCase().replace(/[\.@a-z]/gi, function(match, position, str){
var num = str.charCodeAt(position);
return ('&#' + (num + 65248) + ';');
});
작동하는 바이올린은 다음과 같습니다. http://jsfiddle.net/EhtSC/8/
같은 문자 사이에보다 완벽한 매핑 집합을 만들어이 방법을 개선 할 수 있습니다. 그러나 예를 들어 전자 메일을 메모장에 복사 / 붙여 넣기하면 많은 상자가 나타납니다.
일부 사용자 경험 문제를 극복하기 위해 전자 메일을 링크로 만들었습니다. 클릭하면 문자가 원래대로 다시 매핑됩니다.
이를 개선하기 위해 원하는 경우 더 복잡한 문자 매핑을 만들 수 있습니다. 예를 들어 'a'대신에 사용할 수있는 여러 문자를 찾을 수 있다면 무작위로 매핑하지 않는 이유는 무엇입니까?
아마도 가장 안전한 접근 방식은 아니지만 실제로 재미있는 방법을 사용했습니다 : D