Les e-mails publiés sur des pages Web sont souvent automatiquement extraits par certains outils, et certains utilisateurs illégaux utiliseront les e-mails extraits pour envoyer du spam. La plupart de ces outils recherchent les informations après « mailto : » ou les informations avant et après « @ » dans le lien pour atteindre l'objectif d'extraction des e-mails. J'ai regardé le code source de DotNetNuke (ci-après dénommé DNN) et j'ai trouvé un bon moyen d'empêcher l'extraction automatique de ces informations.
Il existe une telle fonction dans DNN (dans Globals.vb) :
Fonction publique CloakText()Fonction CloakText(ByVal PersonalInfo As String) As String
Si ce n'est pas PersonalInfo, alors
Dim sb As New StringBuilder
'convertit en codes de caractères ASCII, convertit la chaîne en forme de chaîne codée ASCII
sb.Remove(0, sb.Longueur)
Dim StringLength As Integer = PersonalInfo.Length - 1
Pour i comme entier = 0 à StringLength
sb.Append(Asc(PersonalInfo.Substring(i, 1)).ToString)
Si je < StringLength Alors
sb.Append(",")
Fin si
Suivant
' construire un bloc de script
Dim sbScript en tant que nouveau StringBuilder
sbScript.Append(vbCrLf & "<script language=""javascript"">" & vbCrLf)
sbScript.Append("<!-- " & vbCrLf)
Méthode 'fromCharCode : renvoie une chaîne à partir de certaines valeurs de caractères Unicode.
sbScript.Append(" document.write(String.fromCharCode(" & sb.ToString & "))" & vbCrLf)
sbScript.Append("// -->" & vbCrLf)
sbScript.Append("</script>" & vbCrLf)
Retour sbScript.ToString
Autre
Renvoie Null.NullString
Fonction
End If
EndCe code convertit d'abord les informations à chiffrer sous forme de chaîne codée ASCII, puis les écrit sur la page à l'aide de la méthode document.write en javascript.
J'ai testé l'effet suivant et cela fonctionne bien. Vous pouvez également l'essayer.
<html>
<tête>
<méta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Tester le chiffrement des informations</title>
</tête>
<corps>
Liens pouvant être extraits : <a href=" mailto:[email protected]">[email protected]</a><br >
Liens non extractibles :
<langage de script="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))
// -->
</script>
</corps>
</html>
Si cela vous intéresse, vous pouvez aussi utiliser des méthodes de chiffrement plus complexes. En un mot : les gens ne peuvent plus obtenir facilement des informations !