【问题标题】:Assemble and disassemble email for spam protection组装和反汇编电子邮件以防止垃圾邮件
【发布时间】:2021-11-30 04:19:12
【问题描述】:

在我们的footer 中,我们有一个从数据库中提取的email,在php blade 中它看起来像这样:

<a href="mailto:{{ $email }}">{{ $email }}</a>

我需要保护他免受垃圾邮件机器人的侵害。

听说在php中可以拆分,然后通过javascript进行组装,看起来是这样的:

<a href="" data-first="" deta-second="">{{ $email }}</a>

data 是电子邮件本身的部分。但是我不明白如何将它分开然后收集它。谁能告诉我该怎么做?

或者告诉我类似的功能,如何防止垃圾邮件。

【问题讨论】:

    标签: javascript php laravel


    【解决方案1】:

    这与 PHP 无关,因为 PHP 是一种服务器端语言。

    你可以用 Javascript 来做到这一点(这里将使用 jquery 来简化它)

    这会将存储在data-mail 中的电子邮件附加到href 属性中,一旦您的客户单击它,该属性将再次被删除。

    <a class="email" data-mail="{{ $email }}">{{ $email }}</a>
    
    $('.email').click(function () {
        let t = $(this);
    
        t.attr('href', 'mailto:' + t.data('mail'));
    
        setTimeout(() => t.removeAttr('href'), 1);
    });
    

    【讨论】:

    • 除了点击还有其他保护选项吗?允许提取电子邮件数据,在其中添加一些符号并通过 javasript 隐藏它们
    • 只要您的页面以纯文本形式的电子邮件作为响应,就很容易将其抓取。这只会防止最简单的机器人
    • @Kim2000 垃圾邮件防护取决于垃圾邮件的类型。他们会点击您的网页吗?他们会报废吗?他们会复制一次并多次使用吗?
    • @hassan 虽然没有垃圾邮件,但这是为了未来,为了防止它,可以这么说,我正在寻找最好的方法
    • @Kim2000 因为您正在寻找保护自己免受垃圾邮件侵害的最佳方式,另一方面,他们正在尽最大努力向您发送垃圾邮件。他们不会阻止这一点,所以我的建议是走得更远,当您遇到垃圾邮件发送者时,请尝试处理他们
    【解决方案2】:

    网络爬虫通常只会下载纯 HTML 响应。

    在这种情况下,只要您的代码不包含纯文本形式的电子邮件并且将电子邮件重新组合在一起onload

    ,您就会受到保护

    有些人甚至可能在抓取您的页面时执行 JS。

    为了避免这种情况,您可以要求用户按下某些东西来将电子邮件放在一起。 我做了一个简单的例子:

    function showEmail (element) {
        const infoData = document.querySelector('[data-target="'+element.id+'"]').dataset;
        const mail = infoData.p1 + '@' + infoData.p2 + "." + infoData.p3;
        element.href = "mailto:"  + mail;
        element.text = mail;
    }
    <a href="" id="mailOutput1" onclick="showEmail(this)">Send Email</a>
    <!--p1, p2, p3 are filled in PHP -->
    <span data-target="mailOutput1" data-p1="john.doe" data-p2="example" data-p3="com"></span>

    【讨论】:

    • 我现在收到来自数据库{{ $email }} 的电子邮件,如何在 php 刀片页面上将其拉下来以便我可以编辑或拆分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 2011-07-12
    相关资源
    最近更新 更多