iWiz ShareBase

IT Specialist 윤태현의 iWiz ShareBase는 IT뿐 아니라 각종 잡다한 지식들을 함께 나누는 지식공유 커뮤니티입니다.

iWiz,ShareBase,윤태현,Java,JSP,EJB,IT,정보기술,웹프로그래밍,PHP,ASP,DBMS,MySQL,서버,네트워크,server,network,WAS,웹애플리케이션,블로그,blog,웹서버,DB,오라클,oracle,mysql,JRun,웹로직,톰캣,tomcat,아파치,자동차,EF쏘나타,로또 6/45

갤러리 Pixelgrapher.com | 로또 6/45 번호생성 및 통계 데이터 | 전체기사보기 | 전체글 #1 | 전체글 #2 | 전체글 #3 | 전체글 #4 | 전체글 #5 | 전체글 #6 | 전체글 #7 | 전체글 #8 | 전체글 #9 | 전체글 #10 |
HOME iWiz
ShareBase
Remember 0523 & 0818
지식은 나눌수록 커집니다 - iWiz's ShareBase
웹프로그래밍(기타) PHP, ASP, Perl, CGI 등 각종 웹프로그래밍에 관한 자료들입니다.


  iWiz(2004-01-04 22:50:57, Hit : 5642, Vote : 29
 http://www.wz.pe.kr

E-Mail 주소 추출 금지 알고리즘


보통 스팸메일을 보낼때 사용하는 E-Mail 주소는 게시판이나 사이트 등을 로봇이 돌아다니면서 등록된 E-Mail 주소를 추출해내는 것이 대부분입니다.

로봇에 의한 E-Mail 주소 추출 방법은 매우 단순합니다.  검색엔진을 출발점으로 해서 링크를 따라 로봇으로 돌아다니면서 페이지 내의 E-Mail 주소 패턴을 찾아 DB화 시키게 됩니다.

따라서 HTML 소스내에 E-Mail 패턴이나 "mailto:" 라는 문자열 등이 노출되지 않게만 하면 패턴을 찾지 못하기 때문에 충분히 막을 수 있습니다.

아래 URL에 소개된 것 같은 방식이 사용되기도 하지만 사용자의 불편을 초래하는 문제점이 있습니다.  (http://www.neverspam.or.kr/neverspam_spamcop.html)

그래서 HTML 소스상에는 E-Mail 주소가 노출되지 않으면서도, 실제 사용자는 메일 주소를 화면상에서 바로 볼 수 있고, 메일주소를 클릭하면 메일클라이언트가 실행되게 하는 방법을 알려드립니다.

(이 방법은 현재 이 사이트에 적용되어 있습니다. E-Mail 주소가 있는 페이지에서 소스보기를 해보시면 실제 소스에는 E-Mail 주소가 나타나지 않지만, 실제 화면상에서는 정상적으로 E-Mail 주소가 보이고, 클릭하면 아웃룩이 떠서 메일도 바로 보낼 수 있습니다)

<%@ page contentType="text/html; charset=euc-kr"  pageEncoding="euc-kr"
         import="java.util.*"
%>
<%!

private String encodeMail(String mailaddr) {
  
  byte[] buf = mailaddr.getBytes();
  StringBuffer enc = new StringBuffer();
  for (int i=0; i<buf.length; i++) {
   enc.append(buf[i]);
   if (i < mailaddr.length()-1) enc.append(",");
  } // for
  return enc.toString();
} // end encodeMail

%>
<%
String myEmail = "yoonth@smipc.or.kr";
%>
<html>
<head>
<title>메일 주소 감추기</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<script language="javascript">
function printLink(str) {
  document.write("<a href="");
  document.write(String.fromCharCode(109,97,105,108,116,111,58));
  document.write(str);
  document.write("">");
  document.write(str);
  document.write("</a>");
} // end printLink
</script>
</head>
<body>

<p>저의 메일 주소는
<script>printLink( String.fromCharCode(<%=encodeMail(myEmail)%>) );</script>
입니다.
</p>

</body>
</html>


위의 예제는 E-Mail 문자열을 Character Code로 변환해 웹브라우져로 보내고, 브라우져 상에서 JavaScript를 이용해 Char Code를 다시 문자열로 변환하는 것입니다.  한번 위의 jsp를 실행해보신 후 브라우져의 소스보기 메뉴를 이용해 HTML 소스를 보시면 이해가 되실 것입니다.

물론 위의 방법도 E-Mail 수집자가 마음만 먹으면 뚫리겠지만, 기존에 나와있는 수집기 프로그램들의 추출을 충분히 막아낼 수 있고, 조금 더 알고리즘을 복잡하게하고 로직을 꼬아두면 추출기에서는 javascript로 실행되는 코드들을 분석하기 힘들기 때문에 충분히 효과를 거둘 수 있을 것입니다.



62   mod_throttle 모듈을 이용한 사용자 트래픽 제어  iWiz 2006/06/22 8911 0
61   Tomcat-Apache using JK2 connector  iWiz 2004/03/21 6503 41
60   RedHat 9.0에서의 JRun JSP 컴파일러의 문제점  iWiz 2004/01/04 5382 50
59   RedHat 9.0에서의 JRun-Apache 커넥터의 문제점  iWiz 2004/01/04 5064 48
58   JRun 4.0의 튜닝 관련 옵션  iWiz 2004/01/04 5811 68
57   JRun 4.0의 Activity 모니터링 방법  iWiz 2004/01/04 4786 57
56   JRun4.0: DataSource 커넥션풀 관련 옵션 [4]  iWiz 2004/01/04 6532 46
55   JRun에서 JSP 컴파일시 java 파일 생성하기  iWiz 2004/01/04 7916 63
54   JRun의 실제 서비스 운영시 고려사항  iWiz 2004/01/04 6194 44
53   수정된 인터넷 익스플로러에서 상호작용 ActiveX 컨트롤 활성화 가이드  iWiz 2006/03/03 8226 4
52   HTML 특수기호 엔터티(Entity) 테이블 [2]  iWiz 2006/03/03 13887 2
51   웹사이트의 새로운 혁명 Ajax [13]  iWiz 2005/11/22 5724 6
50   MSN 메신저 친구 자동등록 스크립트  iWiz 2004/10/12 6069 35
49   JavaScript MD5 해쉬 생성 함수  iWiz 2004/01/07 8887 35
48   JavaScript로 만든 진법변환 및 보수계산기 [4]  iWiz 2004/01/04 157949 51

1 [2][3][4][5]
 

Copyright 1999-2023 Zeroboard / skin by zero
iWiz ShareBase, ⓒCopyleft by iWiz.  For more information contact .
본 웹사이트에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반시에는 정보통신망법에 의해 형사처벌됨을 유념하시기 바랍니다. [게시일 2004. 1. 31]