Los correos electrónicos publicados en páginas web a menudo se extraen automáticamente mediante algunas herramientas, y algunos usuarios ilegales utilizarán los correos electrónicos extraídos para enviar spam. La mayoría de estas herramientas buscan la información después de "mailto:" o la información antes y después de "@" en el enlace para lograr el propósito de extraer correos electrónicos. Estuve mirando el código fuente de DotNetNuke (en adelante, DNN) y encontré una buena manera de evitar que esta información se extraiga automáticamente.
Existe una función de este tipo en DNN (en Globals.vb):
Función pública CloakText()Función CloakText(ByVal PersonalInfo As String) Como cadena
Si no PersonalInfo no es nada, entonces
Dim sb As New StringBuilder
'convierte a códigos de caracteres ASCII, convierte la cadena en formato de cadena codificada en ASCII
sb.Remove(0, sb.Longitud)
Dim StringLength como entero = PersonalInfo.Length - 1
Para i como entero = 0 a longitud de cadena
sb.Append(Asc(PersonalInfo.Substring(i, 1)).ToString)
Si i <LongitudDeCadena Entonces
sb.Agregar(",")
Terminar si
Siguiente
'bloque de script de construcción
Atenuar sbScript como nuevo StringBuilder
sbScript.Append(vbCrLf & "<script language=""javascript"">" & vbCrLf)
sbScript.Append("<!-- " & vbCrLf)
'Método fromCharCode: devuelve una cadena a partir de algunos valores de caracteres Unicode.
sbScript.Append(" document.write(String.fromCharCode(" & sb.ToString & "))" & vbCrLf)
sbScript.Append("// -->" & vbCrLf)
sbScript.Append("</script>" & vbCrLf)
Devuelve sbScript.ToString
Demás
Devolver nulo.NullString
Función
End If
EndEste código primero convierte la información que se va a cifrar en forma de cadena codificada en ASCII y luego la escribe en la página utilizando el método document.write en javascript.
Probé el siguiente efecto y funciona bien. También puedes probarlo.
<html>
<cabeza>
<meta http-equiv="Tipo de contenido" content="text/html; charset=gb2312">
<title>Cifrado de información de prueba</title>
</cabeza>
<cuerpo>
Enlaces que se pueden extraer: <a href=" mailto:[email protected]">[email protected]</a><br >
Enlaces que no se pueden extraer:
<lenguaje de escritura="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>
</cuerpo>
</html>
Si está interesado, también puede utilizar métodos más complejos para cifrar. En una palabra: ¡la gente ya no puede obtener información fácilmente!