Symfony2的表单最佳实践


Symfony2 best practices for form

我想知道如果在Symfony2 除了默认的csrf隐藏字段,你会在你的窗体中添加其他证券的平均网站

我假设表单是用formbuilder制作的,默认情况下没有向用户显示captcha。

我从……那里得到了一些建议http://nedbatchelder.com/text/stopbots.html和https://www.stanford.edu/dept/its/communications/webservices/wiki/index.php/How_to_implement_a_SPAM_control_countermeasure_that_remains_accessible_using_the_Stanford_Web_Application_Toolkit

1)你会在时间戳/日期时间+盐上添加一个值base64_decode & base64_encode的隐藏字段吗?

因此,您可以将发送表单的时间括号限制在[3秒;1天],有验证约束。

这会惹恼播放机器人和表单填充机器人

2)你会添加一个文本字段,你隐藏与CSS(蜜罐),以便机器人填写时提交的形式?然后创建一个验证约束,这样如果字段不为空,则表单提交无效(如果需要进一步的操作,可能会登录您的数据库ip和用户代理)。

这会惹恼表单填充机器人。

3)随机字段名称和id,以便播放机器人不能发送表单而不重新加载网站页面。(虽然我还没有测试如果随机名称带来的问题与表单构建器)

这会惹恼播放机器人。

4)还有别的主意吗?

我最近使用了app/config/security中的access_control。yml文件。在这里,您可以使用角色(您可以使用默认/匿名角色或您可以定义自己的角色)和通道(http或https)来限制对表单所在路径的访问