我有一个django网站,我正在使用django_still应用程序生成一个静态网站,并将其部署到netlify。我决定在表单中添加机器人程序保护字段(https://docs.netlify.com/forms/spam-filters/#honeypot-字段(。当我在本地运行网站时,我看到
<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删除了这个字段。
起初我认为这是因为缺少data
-前缀,但如果与data-netlify="true" data-netlify-honeypot="BOTFIELD
或仅与netlify="true" netlify-honeypot="BOTFIELD
一起使用,netflix会独立删除它。
我做了一个快速的隔离测试,以确保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已经检查了特定帖子是否是潜在的机器人程序,并为您删除了这些请求。所以他们需要对这些领域做点什么。
希望这能回答你的问题。