3

現在、Businesss Catalyst Webアプリに取り組んでいますが、深刻な問題があります。Webアプリのメールフィールドを難読化する必要があります。残念ながら、Webアプリアイテムからのすべての情報が前処理なしでHTMLページに配置されているため、これを行う簡単な方法はありません(BCのバックエンドにアクセスできないため)。

これが今の私のコードです:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script>
    <!--

    function CryptMailto()
    {
        var n = 0;
        var r = "";
        var x = document.getElementById("test");
        var s = "mailto:"+x.value;
        var e = x.value;

        e = e.replace( /@/, " [at] ");
        e = e.replace( /\./g, " [dot] ");

        for( var i=0; i < s.length; i++ )
        {
            n = s.charCodeAt( i );
            if( n >= 8364 )
            {
                n = 128;
            }
            r += String.fromCharCode(n+1);
        }

        return "<a href=\"javascript:linkTo_UnCryptMailto('"+ r +"');\">"+ e +"</a>";
    }

    function UnCryptMailto( s )
    {
        var n = 0;
        var r = "";
        for( var i = 0; i < s.length; i++)
        {
            n = s.charCodeAt( i );
            if( n >= 8364 )
            {
                n = 128;
            }
            r += String.fromCharCode( n - 1 );
        }
        return r;
    }

    function linkTo_UnCryptMailto( s )
    {
        location.href=UnCryptMailto( s );
    }
    // -->
</script>


</head>

<body>


<input style = "" id = "test" type = "text" value = "test@gmail.com" />

<script>document.write(CryptMailto());</script>

</body>
</html>

ここで問題となるのは、非表示フィールドを「ソースの表示」から引き続き表示できることです。

フロントページに表示される前にフィールドを前処理する方法はありますか?

4

3 に答える 3

3

完全に希望するものではありませんが、別のページに電子メールを出力して(特定のページから呼び出されていない場合はホームページにリダイレクトするチェックをオンにして)、電子メールをAjaxで送信できます。これはビューソースには表示されませんが、一部のブラウザは、更新されたコードを表示する傾向があるため、検査要素(chrome / Firefox)に表示されます。繰り返しますが、理想的ではありませんが、誰かが電子メールを取得するのが少し難しくなります。

更新 さらに一歩進めたい場合は、メールをページ上のコンテナにAJAXしてから、javascript変数に保存し、AJAXの結果をダンプしたコンテナのコンテンツを別のものに置き換えます。その領域の出力を調べてください。ダミーテキスト(または空白)に置き換えられます。

于 2012-10-30T03:39:09.847 に答える
1

私はBCサポートと話しましたが、それはサンドボックスCMSであるため、基本的にこれを行う方法はありません:(

于 2012-10-01T18:08:47.390 に答える
0

以前は、顧客が事前に難読化された電子メールリンクをWebアプリのフィールドに直接入力することを許可していました。

これがあなたの場合の唯一の解決策だと思います。

次に、 http://www.albionresearch.com/misc/obfuscator.phpなどの電子メールを難読化するためのツールへのリンクをクライアントに提供し ます

于 2014-08-19T11:36:06.870 に答える