首页 > 解决方案 > 部署时缺少 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

解决方案


简而言之:是的,netlify 删除了这个字段。

我最初认为这是因为缺少-prefix 但如果它与OR justdata一起使用,netflify 会独立删除它。data-netlify="true" data-netlify-honeypot="BOTFIELDnetlify="true" netlify-honeypot="BOTFIELD

我做了一个快速的隔离测试,以确保 django 没有做一些魔术。所以我干脆用了两个静态html文件,然后推送到netlify:

在这两种情况下,它都会消失。您可以在此处查看这两个文件的相应源代码:

https://github.com/christoph-kluge/netlify-example

我假设 netlify 在部署期间正在解析您的 HTML 代码并正在对其进行调整。此外,netflify 已经检查特定帖子是否是潜在的机器人并为您放弃这些请求。所以他们需要对这些领域做点什么。

希望这能回答你的问题。


推荐阅读