Электронные письма, размещенные на веб-страницах, часто автоматически извлекаются некоторыми инструментами, а некоторые нелегальные пользователи используют извлеченные электронные письма для рассылки спама. Большинство этих инструментов ищут информацию после «mailto:» или информацию до и после «@» в ссылке для достижения цели извлечения электронных писем. Я просматривал исходный код DotNetNuke (далее DNN) и нашел хороший способ предотвратить автоматическое извлечение этой информации.
В DNN (в Globals.vb) есть такая функция:
Открытая функция CloakText()Function CloakText(ByVal PersonalInfo As String) As String
If Not PersonalInfo Is Nothing then
Dim sb As New StringBuilder
'преобразовать в коды символов ASCII, преобразовать строку в строковую форму, закодированную ASCII.
sb.Remove(0, sb.Длина)
Dim StringLength As Integer = PersonalInfo.Length - 1
Для i As Integer = 0 To StringLength
sb.Append(Asc(PersonalInfo.Substring(i, 1)).ToString)
Если я < StringLength Тогда
sb.Append(",")
Конец, если
Следующий
' блок сценария сборки
Dim sbScript как новый StringBuilder
sbScript.Append(vbCrLf & "<script Language=""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 Function
Этот код сначала преобразует информацию, подлежащую шифрованию, в строковую форму, закодированную ASCII, а затем записывает ее на страницу с помощью метода document.write в javascript.
Я протестировал следующий эффект, и он работает хорошо. Вы также можете попробовать.
<html>
<голова>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Шифрование тестовой информации</title>
</head>
<тело>
Ссылки, которые можно извлечь: <a href=" mailto:[email protected]">[email protected]</a><br >
Ссылки, которые невозможно извлечь:
<script Language="JavaScript">
<!--
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))
// -->
</скрипт>
</тело>
</html>
Если вам интересно, вы также можете использовать более сложные методы шифрования. Одним словом: люди больше не смогут легко получить информацию!