netlify - 部署时缺少 Netlify 蜜罐属性
问题描述
我有一个 django 网站,我正在使用 django_distill 应用程序来生成一个静态站点,我正在部署它来进行 netlify。我决定在表单中添加一个机器人保护字段(https://docs.netlify.com/forms/spam-filters/#honeypot-field)。当我在本地运行该站点时,我看到
<form data-netlify="true" name="consultdocs" netlify-honeypot="BOTFIELD" action="/contact/" id="form" method="post" novalidate="novalidate"> <input type="hidden" name="csrfmiddlewaretoken" value="rdKh4K2zu9T96aEUO9exSv3QCAm5w">
<input id="id_BOTFIELD" name="BOTFIELD" type="hidden">
....
当我部署到 netlify 时:
<form name="consultdocs" action="/contact/" id="form" method="post" novalidate="novalidate"><input type="hidden" name="form-name" value="consultdocs"> <input type="hidden" name="csrfmiddlewaretoken" value="GNnbYgQu6vLduSpWEswAVXfEx">
<input id="id_BOTFIELD" name="BOTFIELD" type="hidden">
....
我不再看到:
netlify-honeypot="BOTFIELD"
属性。netlify 会删除这个吗?
解决方案
简而言之:是的,netlify 删除了这个字段。
我最初认为这是因为缺少-prefix 但如果它与OR justdata
一起使用,netflify 会独立删除它。data-netlify="true" data-netlify-honeypot="BOTFIELD
netlify="true" netlify-honeypot="BOTFIELD
我做了一个快速的隔离测试,以确保 django 没有做一些魔术。所以我干脆用了两个静态html文件,然后推送到netlify:
- https://gallant-edison-bf9c5f.netlify.com/index.html(无数据属性)
- https://gallant-edison-bf9c5f.netlify.com/index2.html(带数据属性)
在这两种情况下,它都会消失。您可以在此处查看这两个文件的相应源代码:
https://github.com/christoph-kluge/netlify-example
我假设 netlify 在部署期间正在解析您的 HTML 代码并正在对其进行调整。此外,netflify 已经检查特定帖子是否是潜在的机器人并为您放弃这些请求。所以他们需要对这些领域做点什么。
希望这能回答你的问题。
推荐阅读
- python-3.7 - 正则表达式搜索多个模式
- css - 行之间的材料表空间
- javascript - 具有构造函数以及 HTML 和 CSS 文件的组件数组。错误 NG2003。ngFor
- java - maven compile 有时会失败,有时会成功
- javascript - 如果特定值相同,我想要一个合并子数组的函数
- c# - 正则表达式速度改进 C#
- python - 替换 PySpark 列中的最后两个字符
- mysql - 在mysql中将HOUR格式转换为Day-Hour-Minute-Second
- ruby - 安装 nokogiri 时出错:无效的 gem:包已损坏
- postgresql - Postgres 不在数据库中存储系统时间