防止机器人通过网页表单提交垃圾留言

7 篇文章 0 订阅
5 篇文章 0 订阅

本文介绍一个小技巧,防止机器人通过网页表单,提交垃圾留言。方法是为表单元素<form>加上一个data-action属性,真正的提交地址放在这个属性里面。

怎样防止机器人通过网页表单提交垃圾留言,可以像Drupal运用反垃圾模块 honeypot 蜜罐技术(蜜罐元素,honeypot element),知道在哪里有 <input> 文本,该文本使用 CSS 以某种方式隐藏了,如果被填充了该文本,则会丢弃提交。

最好还添加一个aria-label,aria-label =“不要填写这项,它是垃圾邮件蜜罐之一”,这样,有视觉障碍的人仍然可以向我发送消息,而不会因填了此项而提交失败。

https://developer.mozilla.org/zh-CN/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute

但是,做好了上面的任然不能100%的防止机器人通过网页表单提交垃圾留言。下面的思路是在提交表单之前,让浏览器代替该数据操作中的常规操作。

<form id='myContactForm' action='https://xushanxiang.com/that-needs-js/' data-action='https://xushanxiang.com/your/actual/form/submit/url'>
<script>
    function updateContactFormDestination() {
        var contactForm = document.getElementById("myContactForm");
        var realSubmitUrl = contactForm.getAttribute('data-action');

        contactForm.setAttribute('action', realSubmitUrl);
    }

    document.addEventListener("DOMContentLoaded", function(event) { 
        updateContactFormDestination();
    });
</script>

https://developer.mozilla.org/zh-CN/docs/Web/Events/DOMContentLoaded

好了,接着就是观察一段时间看看了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值