web-dev-qa-db-fra.com

Extrait de protection d'adresse de messagerie

Existe-t-il une application Web qui vous permet de publier un courrier électronique sur le Web en utilisant une balise de script qui le protège des robots?

Pour être plus clair: je souhaite publier un article sur Blogspot qui affiche mon courrier électronique à l'écran sous forme de texte sélectionnable et pouvant être copié, tout en le masquant du code source HTML. C'est une technique anti-spam.

J'imagine que la solution consiste à utiliser du javascript qui récupère l'adresse de messagerie d'un serveur ou la déchiffre à partir de données existantes. Je sais que cela pourrait être une question de programmation si la solution ne nécessite pas de programmation côté serveur, mais je ne suis pas sûr de cela.

1
Jader Dias

Il y a un tas de sites qui génèrent le code. Cela implique généralement de diviser l’adresse électronique en quelques variables, puis de les écrire à l’écran. Exemple simple:

<script type="text/javascript">
    dot = "."
    part1 = "john"
    part2 = "doe"
    part3 = "gma"
    part4 = "il"
    part5 = "co"
    part6 = "m"

    document.write( part1 + dot + part2 + "@" + part3 + part4 + dot + part5 + part6

    //returns [email protected]
</script>

Des options plus complexes convertissent chaque lettre en élément HTML.

Départ http://www.mobilefish.com/services/hideemail/hideemail.php#hideemail_input à titre d'exemple

2
hookedonwinter

J'utilise le Hivelogic enkoder .

2
Don Kirkby

Nous utilisons une fonction VB pour générer les adresses électroniques. Il code les adresses en UTF-8 ou en hexadécimal. Vous pouvez le convertir dans la langue de votre choix. C'est le code VB.NET:

' Convert An Input String To Unicode Character Codes
Public Enum CloakType
    UTF8_1
    UTF8_2
    HEX_1
    HEX_2
    UniCode
End Enum

Public Function CloakIt(ByVal inTxt As String, ByVal iType As CloakType) As String
    Dim iInd As Integer
    Dim sOut As String
    sOut = ""
    If Len(inTxt) = 0 Then
        CloakIt = ""
        Exit Function
    End If
    For iInd = 1 To Len(inTxt)
        Select Case iType
            Case CloakType.UTF8_2 ', 2
                ' Long UTF-8 encoding without semicolons
                sOut = sOut & "&#" & Right("0000000" & CStr(Asc(Mid(inTxt, iInd, 1))), 7)
            Case CloakType.HEX_1 ', 3
                ' Hex encoding without semicolons
                sOut = sOut & "&#x" & Hex(Asc(Mid(inTxt, iInd, 1)))
            Case CloakType.HEX_2 ', 4
                ' Hex encoding with semicolons
                sOut = sOut & "&#x" & Hex(Asc(Mid(inTxt, iInd, 1))) & ";"
            Case CloakType.UniCode ', 5
                ' Unicode 2 Byte Hex encoding with semicolons
                sOut = sOut & "&#x00" & Hex(Asc(Mid(inTxt, iInd, 1))) & ";"
            Case Else
                ' UTF-8 Unicode Encoding
                sOut = sOut & "&#" & CStr(Asc(Mid(inTxt, iInd, 1))) & ";"
        End Select
    Next
    CloakIt = sOut
End Function
0
Dave