3

我现在正在开发 Businesss Catalyst Web App,但我遇到了一个严重的问题。我需要混淆 Web App 的电子邮件字段。不幸的是,没有简单的方法可以做到这一点,因为来自网络应用程序项目的所有信息都被放在 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

过去,我允许客户将预先混淆的电子邮件链接直接输入到 webapp 的字段中。

我认为这是您的唯一解决方案。

然后,为客户提供一个链接到一个工具来混淆电子邮件,例如 http://www.albionresearch.com/misc/obfuscator.php

于 2014-08-19T11:36:06.870 回答