Email yang diposting di halaman web sering kali diekstraksi secara otomatis oleh beberapa alat, dan beberapa pengguna ilegal akan menggunakan email yang diekstraksi untuk mengirim spam. Sebagian besar alat ini mencari informasi setelah "mailto:" atau informasi sebelum dan sesudah "@" di tautan untuk mencapai tujuan mengekstraksi email. Saya sedang melihat kode sumber DotNetNuke (selanjutnya disebut DNN) dan menemukan cara yang baik untuk mencegah informasi ini diekstraksi secara otomatis.
Ada fungsi seperti itu di DNN (di Globals.vb):
Fungsi Publik CloakText()Fungsi CloakText(ByVal PersonalInfo As String) Sebagai String
Jika Bukan PersonalInfo Bukan Apa-apa Maka
Redupkan sb As New StringBuilder
' ubah ke kode karakter ASCII, ubah string menjadi bentuk string yang dikodekan ASCII
sb.Hapus(0, sb.Panjang)
Redupkan StringLength Sebagai Integer = PersonalInfo.Length - 1
Untuk i Sebagai Integer = 0 Ke Panjang String
sb.Tambahkan(Asc(PersonalInfo.Substring(i, 1)).ToString)
Jika saya < Panjang String Lalu
sb.Tambahkan(",")
Akhiri Jika
Berikutnya
' buat blok skrip
Redupkan sbScript Sebagai StringBuilder Baru
sbScript.Append(vbCrLf & "<script Language=""javascript"">" & vbCrLf)
sbScript.Tambahkan("<!-- " & vbCrLf)
'metode fromCharCode: Mengembalikan string dari beberapa nilai karakter Unicode.
sbScript.Append(" document.write(String.fromCharCode(" & sb.ToString & "))" & vbCrLf)
sbScript.Tambahkan("// -->" & vbCrLf)
sbScript.Append("</script>" & vbCrLf)
Mengembalikan sbScript.ToString
Kalau tidak
Kembalikan Null.NullString
Fungsi
Akhir Jika
AkhirKode ini pertama-tama mengubah informasi yang akan dienkripsi menjadi bentuk string yang dikodekan ASCII, dan kemudian menulisnya ke halaman menggunakan metode document.write dalam javascript.
Saya menguji efek berikut dan berfungsi dengan baik. Anda juga bisa mencobanya.
<html>
<kepala>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
<title>Uji enkripsi informasi</title>
</kepala>
<tubuh>
Tautan yang dapat diambil: <a href=" mailto:[email protected]">[email protected]</a><br >
Tautan yang tidak dapat diekstraksi:
<skrip bahasa="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))
// -->
</skrip>
</tubuh>
</html>
Jika Anda tertarik, Anda juga dapat menggunakan metode enkripsi yang lebih kompleks. Singkatnya: orang tidak lagi dapat memperoleh informasi dengan mudah!