웹 페이지에 게시된 이메일은 일부 도구에 의해 자동으로 추출되는 경우가 많으며 일부 불법 사용자는 추출된 이메일을 사용하여 스팸을 발송합니다. 이러한 도구의 대부분은 이메일 추출 목적을 달성하기 위해 링크에서 "mailto:" 뒤의 정보 또는 "@" 앞뒤의 정보를 검색합니다. DotNetNuke(이하 DNN)의 소스코드를 보다가 이 정보가 자동으로 추출되는 것을 방지하는 좋은 방법을 찾아냈습니다.
DNN(Globals.vb)에는 다음과 같은 기능이 있습니다.
공용 함수 CloakText()함수 CloakText(ByVal PersonalInfo As String) As String
If Not PersonalInfo is Nothing Then
Dim sb As New StringBuilder
' ASCII 문자 코드로 변환, 문자열을 ASCII 인코딩된 문자열 형식으로 변환
sb.제거(0, sb.길이)
Dim StringLength As Integer = PersonalInfo.Length - 1
i의 경우 정수 = 0에서 StringLength로
sb.Append(Asc(PersonalInfo.Substring(i, 1)).ToString)
i < StringLength이면
sb.Append(",")
종료 조건
다음
' 빌드 스크립트 블록
sbScript를 새로운 StringBuilder
sbScript.Append(vbCrLf & "<script 언어=""javascript"">" & vbCrLf)
로 희미하게 만듭니다.
sbScript.Append("<!-- " & vbCrLf)
'fromCharCode 메서드: 일부 유니코드 문자 값에서 문자열을 반환합니다.
sbScript.Append(" document.write(String.fromCharCode(" & sb.ToString & "))" & vbCrLf)
sbScript.Append("// -->" & vbCrLf)
sbScript.Append("</script>" & vbCrLf)
sbScript.ToString을 반환합니다
.
또 다른
Null.NullString을 반환합니다.
End If
End 함수
암호화할 정보를 먼저 ASCII 인코딩된 문자열 형식으로 변환한 후 javascript의 document.write 메소드를 사용하여 페이지에 쓰는 코드입니다.
다음 효과를 테스트했는데 잘 작동합니다. 시도해 볼 수도 있습니다.
<html>
<머리>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>테스트 정보 암호화</title>
</head>
<본문>
추출할 수 있는 링크: <a href=" mailto:[email protected]">[email protected]</a><br >
추출할 수 없는 링크:
<스크립트 언어="자바스크립트">
<!--
document.write(String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,120,120,120,64,116,111,109,
46,99,111,109,34,62,120,120,120,64,116,111,109,46,99,111,109,60,47,97,62))
// -->
</script>
</body>
</html>
관심이 있다면 더 복잡한 암호화 방법을 사용할 수도 있습니다. 즉, 사람들은 더 이상 정보를 쉽게 얻을 수 없습니다!