스팸이 될 가능성을 줄이면서 웹 사이트에 "문의하기"이메일 주소를 나열하는 좋은 방법은 무엇입니까?
이메일 주소를 이미지에 넣는 것이 가장 좋은 방법입니까, 아니면 다른 방법이 있습니까?
스팸이 될 가능성을 줄이면서 웹 사이트에 "문의하기"이메일 주소를 나열하는 좋은 방법은 무엇입니까?
이메일 주소를 이미지에 넣는 것이 가장 좋은 방법입니까, 아니면 다른 방법이 있습니까?
답변:
이메일을 실제 이메일 주소로 전달하는 일회용 Gmail 계정을 통해 모든 문의 양식을 전달합니다. 무료이며 쉬우 며 Gmail 스팸 탐지는 최고입니다.
웹 사이트를 만들 때 별도의 노력이 필요하지 않으며, 문제가 발생하면 Gmail 계정에 로그인하여 스팸으로 신고하십시오.
그런 다음 전달 된 내용을 자동으로 보관하거나 추가 사본을 보관하지 않으려면 삭제하도록 Gmail받은 편지함을 설정할 수 있습니다.
내 대답은 이것을하지 않는 것입니다. GMail 및 바라쿠다 안티 스팸 어플라이언스와 같은 최신 이메일 시스템은 스팸 필터링 작업을 훌륭하게 수행합니다. 귀하와 방문자 사이의 장벽은 참여 수준이 낮고 사이트 유형에 따라 잠재적 인 판매 손실을 의미합니다.
기본 메일 클라이언트가 설치되지 않은 사용자 또는 mailto : 핸들러가 올바르게 설정되지 않은 사용자에 대해 걱정되는 경우 연결된 전자 메일 주소와 양식이있는 연락처 페이지 (CAPTCHA 없음) 및 사용자가 선택하게하십시오.
스팸은 성가 시지만 사용자가 아닌 부담해야합니다.
자연어를 사용하여 이메일 주소를 입력하십시오 ...
전의:
thatguy at gmail dot com
자연어를 구별 할 수있는 봇을 작성하는 것과 @ 기호 만 검색하여 일반 주소를 정규식으로 사용하는 봇을 작성하는 것이 얼마나 어려운지 놀랄 것입니다.
100 % 완전하지는 않지만 난독 화보다 나쁘지 않으며 시각 장애가있는 사용자 및 / 또는 JavaScript가 비활성화 된 사용자를 소외시키지 않습니다.
업데이트 : 이 기술의 실제 예는 다음과 같습니다 .
업데이트 2 :
누군가가 실제로 이것에 대한 연구를 수행하여 온라인에 게시 한 것으로 나타났습니다. 결과 또는 원본 기사를 설명 하는 수퍼 유저 게시물을 참조하십시오
thatguy funny-symbol gmail.com
개인적으로, 나는 사이트에 이메일 주소를 표시하지 않지만, 이메일을 보낸 사람의 표시와 함께 사용하기 쉽고 접근하기 쉬운 문의 양식을 가지고 있습니다. 사용자가 이메일 주소를 노출하거나 다양한 JavaScript 후프 등을 뛰어 넘지 않고도 사이트 소유자 및 운영자에게 이메일을 보낼 수 있습니다.
스팸 필터링이 그렇게 정교하지 않은 경우 가장 좋은 방법입니다.
CSS를 사용하여 실제 텍스트에서 약간의 노이즈를 숨기십시오 (한 줄에 모두 기술을 더 잘 설명하기 위해 형식을 지정했습니다).
u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com
그런 다음이 작은 CSS 조각을 사용하십시오.
.spam { display: none; }
유효한 mailto:
컨텐츠 가 필요하다면 , DOM에서 jscript를 통해 컨텐츠를 작성해야합니다. 이에 대한 다른 답변을보십시오. 그러나 나는 그것의 큰 친구가 아닙니다.
내가하는 일은 전자 메일 주소를 단어로 작성하고 span 태그로 묶은 것 <span class="email">joe dot blow at gmail dot com</span>
입니다. 그런 다음 페이지 수준 스크립트가 실행되어 이러한 범위를 잡고 각각을 구성된 전자 메일 링크로 바꿉니다. 너무 모호하지는 않지만 불만은 없습니다. 또한 JavaScript가 비활성화 된 경우에도 실제 범위 텍스트를 읽을 수 있습니다.
와 같은 html 인코딩을 사용 ʉẮᶗ
하면 브라우저는 "abc"처럼 렌더링합니다
전자 메일 주소가 포함 된 .png 이미지를 동적으로 만들려면 그래픽 라이브러리 (예 : PHP 에서 지원하는 GD 등)를 사용하십시오 .
내 다른 대답과 비교 하여이 솔루션은 사용자에게 덜 성가시다 (그러나 투명하지는 않습니다. 복사하여 붙여 넣을 수는 없지만 처음부터 다시 입력해야 함).하지만 덜 안전합니다. 컴퓨터는 명확하게 모호하지 않은 이미지를 읽을 수 있습니다.
그러나 전반적으로 좋은 타협이라고 생각합니다. 대부분의 스팸 봇을 중지시킵니다.
완벽하지는 않지만 Javascript를 통해 전자 메일 주소를 만드는 것이 좋습니다. 이메일을 찾는 대부분의 스파이더는 자바 스크립트를 실행하지 않으므로 읽을 수있는 이메일 주소를 찾지 못합니다.
다음 은 그 방법을 보여주는 한 가지 예입니다.
간단한 Python 스크립트를 사용하여 전자 메일 주소를 전자 메일 주소가 HTML 엔터티로 인코딩 된 mailto 링크로 변환합니다. 이것은 사용자에게 완전히 투명하지만 대부분의 단순한 수확 봇을 물리 치기에 충분한 내용을 모호하게하는 것 같습니다.
#! /usr/bin/env python3.0
def entity_encode(text):
out = ""
ba = text.encode()
for i in range(len(ba)):
out = out + "&#x{0:02x};".format (ba[i])
return out
def print_email_link(address) :
print('<!-- {0} -->'.format(address))
print('<a href="{0}{1}">{1}</a>'.format(entity_encode("mailto:"), entity_encode(address)))
print_email_link("test123@example.com")
이것은 출력을 제공합니다
<!-- test123@example.com -->
<a href="mailto:test123@example.com">test123@example.com</a>
결과를 웹 페이지에 붙여 넣으면 브라우저에 "test123@example.com"텍스트가 "mailto : test123@example.com"의 하이퍼 라인으로 표시되므로 최종 사용자에게 주소를 포함하는 것만 큼 편리합니다 분명하게. 그러나 많은 수확 봇을 물리 치는 것 같습니다.
분명히, 난해한 이메일 링크를 웹 페이지 HTML 소스의 적절한 지점에 붙여 넣으면 주소의 일반 ASCII 버전으로 주석을 삭제합니다.
이메일 주소를 표시하기 전에 (또는 연락 양식이있는 경우 사용자가 제출하기 전에) CAPTCHA를 해결하도록 사용자에게 요청하십시오.
사용자에게는 가장 성가 시지만 확실히 가장 효과적입니다.
저는 이메일 주소가 본질적으로 Javascript로 렌더링되는 난독 화 팬입니다.
예를 들어, my@email.com
로 표현 될 수있다
<a href="javascript:location='mailto:\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d';void 0">
<script type="text/javascript">document.write('\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d')</script></a>
사용자와 관련하여 일반적인 텍스트이며 복사하여 붙여 넣을 수 있습니다. 반면에 봇은 시간이 좀 더 걸릴 것입니다.
여기 내가 사용한 난독 화기가 있습니다.
<a href="#" onclick="document.location.href='mailto:...'; return false">
일방 통행:
<script language="javascript">
<!--
var name = "user"
var host1 = "gm"
var host2 = "ail.com"
var addr =
document.write("<a href=mai" + "lto:" +
name + "@" + host1 + host2 +
">" + name + "@" + host1 + host2 + "</a>")
//-->
</script>
<noscript>
자바 스크립트를 사용 중지 한 사용자를 위해 "내 이메일을 읽을 수 없음 : com dot gmail의 사용자"를 태그에 쓸 수 있습니다 . 이렇게하면 하이퍼 링크 기능을 사용할 수 있습니다. 스팸 메일을 사용자의 주소에서 멀리 떨어 뜨릴 수 있으며 자바 스크립트가 꺼져 있거나 텍스트 만있는 브라우저를 사용하는 사람은 여전히 전자 메일 주소를 얻을 수 있습니다.
많은 사람들이 당신에게 연락하면 세계의 모든 난독 처리 기술은 장기적으로 도움이 될 수 없습니다. 모든 사람이 메시지를 삭제하고 나중에받은 편지함 / 보낸 메일 / 주소록 / 올바른 주소를 검색하는 악성 코드에 감염되고 주소가 목록에서 목록으로 전달되는 경우도 있습니다. 가장 바보 같은 이유로 온라인 양식에 전자 메일 주소와 암호를 넣을 정도로 어리석은 사람도있을 것입니다. 가장 최근의 사람은 누군가의 "이메일 점성술 차트 및 예측"을 계산하여 즉시 스팸으로 보낸 사이트였습니다. 같은 사이트에 초대 된 바보의 연락처와 <deity>는 현재 다른 목록이 무엇인지 알고 있습니다] .
내 공개 웹 사이트의 주소는 단순한 버림받은 주소가 아니라 버림받은 하위 도메인에 있습니다. 해당 하위 도메인에서 스팸을 받기 시작하면 새 도메인을 만들고 연락처 세부 정보가 나열된 사이트를 업데이트 한 다음 잠시 후 DNS 레코드에서 하위 도메인을 완전히 제거합니다. 이렇게하거나 다른 주소를 잃어버린 주소 기술을 사용하는 경우 향후 주소가 변경 될 것임을 사람들이 알 수 있는지 (주소를 나열한 모든 페이지와 해당 주소를 사용하여 보내는 메일의 바닥 글) 확인하십시오. 통과하지 않으면 올바른 주소를 가지고 있는지 다시 확인해야합니다.
이것은 사람들이 나중에 주소를 편집하기 위해 두뇌를 사용할 필요없이 클릭하거나 (브라우저 + 메일러가 링크 된 경우) 복사 + 붙여 넣기를 할 수있는 간단한 주소라는 이점이 있습니다 (언제나 많은 사람들이 놀랍습니다. 지적이고 관찰적인 사람들은 그런 종류의 일을 제대로 할 수 없습니다). 또한 내 메일 서버가 만료 된 하위 도메인에서 "랜덤"주소 (aaron @, adam @, amy01 @, ...)로 전송 된 메시지를 수신 거부하는 데 하루가 걸리지 않음을 의미합니다. 또한 시각 장애인이 사용하거나 화면이 좋지 않은 화면 판독기를 혼동하지 않습니다.
아직 시도하지 않은 또 다른 옵션은 AJAX 요청을 사용하여 전자 메일 주소와 기타 세부 정보를 읽는 것입니다. document.write
웹 서버에 약간의 추가로드를 추가하지만 이것은 난독 화 기반 보다 약간 더 효과적 일 수 있습니다 .
예를 들어 "문의 / 문의"양식을 사용했지만 때로는 일반 텍스트 전자 메일 주소 이상으로 스팸이 발송되는 경우가있었습니다. 때로는 양식을 사용하여 계정을 생성하는 대신 스크립트를 사용하는 경우가 있습니다. 연락 양식으로 사용하십시오.
봇 필터가있는 경우 (1x1px, 서브넷, 알려진 봇, jscript 감지, http 리퍼러 및 브라우저 에이전트 사용) 봇인 경우 정보를 표시 할 수 없습니다.
PHP 솔루션 :
<?
if (!isbot()) {
echo 'mailto:'.$email_address_for_real_people;
}
else {
echo 'mailto:yourself_bot@'.$bots_domain_address;
}
?>
isbot()
는 사용자가 만든 봇 필터 루틴을 가리키는 사용자 작성 함수입니다.
내가 찾은 가장 쉬운 방법은 기본 주소가있는 연락처 양식을 사용하는 것뿐만 아니라 사용자가 커뮤니케이션 대상을 선택할 수있는 기능 (마케팅, 판매, 기술 지원 등)을 사용하는 것입니다. 그런 다음 드롭 다운 값에 따라 게시 된 양식 데이터가 서버에서 적절한 전자 메일 주소로 전송됩니다.
데이터베이스 테이블에서이 대화 상대 목록을 실행하여 드롭 다운에 항목을 쉽게 업데이트 / 추가 할 수 있습니다. 이렇게하면 광범위한 종류의 스팸 봇에 어떤 종류의 주소도 노출시키지 않아도 사용자에게 피드백을 보낼 수있는 좋은 방법을 제공 할 수 있습니다.
안 돼요, 호세! -예, 호세!
a href="mailto:"
이메일 주소 수집을 '중지'할 방법은 절대 없습니다 . JavaScript를 사용하는 것이 대부분의 수확 봇을 막는 좋은 방법이라고 오랫동안 믿어지고 있지만 요즘 봇은이 방법을 물리 치기에는 상당히 좋습니다. 또한 decaptcha 소프트웨어를 사용하여 보안 문자를 무찌를 수있는 것과 같은 방식으로 전자 메일 주소가 포함 된 이미지를 무찌를 수 있습니다.
더 좋은 방법!
더 나은 접근 방법은 좋은 스팸 차단 기능을 제공하는 평판 좋은 메일 서비스를 사용하는 것입니다. Google G Suite 및 Microsoft Office 365 는 시중에 판매되는 소프트웨어와 비교할 수없는 알고리즘을 사용합니다. 대부분 하루에 수백만 건의 이메일을 수신하고 이메일을 보내기 전에 스팸 발송자를 '학습'하고 블랙리스트에 올릴 수 있기 때문입니다.
실제로 1 년 전 구글은 머신 러닝 기술이 99.9 %의 Gmail 스팸 및 피싱 메시지를 차단 하고 plesk / cpanel 뒤에서 실행되는 로컬 Microsoft Exchange 및 메일 서버는이 보호 기능과 경쟁 할 수 없다고 밝혔다.
요약
AI 머신 러닝이 가능한 평판 좋은 메일 서비스를 사용하여 스팸을 차단하십시오. 스패머가 Cloudflare를 사용하여 사이트를 방문하는 것을 방지하여 한 단계 더 나아가서 공격적인 봇이 사이트에 도달하기 전에 대부분의 공격적인 봇을 감지 할 수 있습니다.
나는 수년간 fred@no-spam.domain.com을 사용해 왔습니다. 사용자는 일반적으로 '스팸 없음'을 삭제하기에 충분합니다.
그렇지 않으면, 나는 단지 '보안 문자'와 함께 연락 양식을 사용하고 웹 사이트에서 직접 메일을 보냅니다.
내가하는 한 가지는 http://www.stopforumspam.com 의 API를 사용하여 스패머를 확인하는 것입니다. 자세한 내용은 저에게 연락 주시면 기꺼이 도와 드리겠습니다!
버드 만즈
Manz Web Designs, LLC
javascript를 사용하는 것이 마음에 들지 않으면 이메일 주소를 난독 처리하기 위해 ROT13과 같은 것을 사용할 수 있습니다. 예를 들어 다음을 참조하십시오 :
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/
개인적으로 연락 양식을 사용하는 것이 좋으며 스팸봇에 대해 걱정하지 않아도되지만 당연히 요구 사항에 따라 다릅니다.
PHP 함수 를 사용하여 런타임에 스크립트를 출력하는 일부 자바 스크립트를 생성합니다. 런타임에 JS를 생성하기 위해 PHP가 필요 하지 않습니다 . JS를 로컬로 한 번 생성 한 다음 페이지에 정적 JS를 포함시킬 수 있습니다.
주어진 스 니펫 ($ processedContent가 HTML 임)에서 이메일 주소를 난독 화하기 위해 아래의 스 니펫과 링크 된 기능을 사용할 수도 있습니다.
$emailMatches = array();
$matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);
if($matchCount > 0) {
$emailMatches = $emailMatches[0];
foreach($emailMatches as $email) {
$replacement = createJSMailLink($email);
$processedContent = str_replace($email, createJSMailLink($email), $processedContent);
}
}
Zoho Creator 를 사용 하여 연락처 양식을 설정 하십시오 . 수신 한 피드백은 온라인으로 액세스 할 수있는 데이터베이스에 저장되며 이메일로도 전송됩니다.