我在rails 5.x.x上学习课程,当他们使用form时,在表单开始时添加一行令牌身份验证来保护他们的站点,如下所示:
<input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>">但是在rails的最后一个版本上,我使用的是6.1.3版本,我在网上没有看到任何关于这一点的信息。所以问题是:我还需要在任何地方设置这个真实性标记吗?如果是,在哪里?如果没有,为什么?如果您有一些关于rails 6的链接,我不会拒绝。谢谢你。
发布于 2021-03-04 21:21:54
不,您不需要手动添加它,Rails以每种形式为您添加它。
<%= form_with do |form| %>
Form contents
<% end %>生成
<form accept-charset="UTF-8" action="/" method="post">
<input name="authenticity_token" type="hidden" value="J7CBxfHalt49OSHp27hblqK20c9PgwJ108nDHX/8Cts=" />
Form contents
</form>包含一个类型隐藏的输入元素。这个输入很重要,因为没有它就无法成功地提交非GET表单。名为authenticity_token的隐藏输入元素是Rails的一个安全特性,称为跨站点请求伪造保护,表单助手为每个非GET表单生成它(前提是启用了此安全功能)。您可以在“保护Rails应用程序指南”中阅读更多有关这方面的内容。
https://stackoverflow.com/questions/66480480
复制相似问题