PHP CSRF表单令牌+验证建议


PHP CSRF Form token + validation advice

我有一个提交表单,有9个字段,其中6个需要验证,包括一个带有文件大小和文件类型验证的上传字段。

生成一个随机令牌,以防止CSRF工作,但在使用令牌时,正确的验证方法是什么?

如果我在同一个文件中进行验证,则会在重新加载验证时重新生成令牌。(这可以防止吗?我已经尝试过isset(),但仍然重新生成。(但是,使用同一个文件会阻止用户Name和Email存储在会话中。

是否最好在一个单独的文件中进行验证,然后重定向回每个错误的URL中包含基本变量的表单,即http://www.example.com/form?n=1

使用单独的文件也意味着将表单数据存储在会话中,这样,如果重定向中存在错误,就可以重新填充表单。

感谢您的帮助。

根据经验,CodeIgntier在其他安全措施中实现了出色的CSRF。我建议您仔细阅读他们的代码,以更好地了解整个过程。另请参阅此。