如何实现CSRF保护吗
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
如何实现CSRF保护吗
CSRF——或者跨站点请求伪造——是一个恶意用户的方法试图让你合法用户在不知情的情况下提交数据,他们不打算提交。幸运的是,可以阻止CSRF攻击使用CSRF令牌在你的形式。
好消息是,默认情况欧宝平台是合法的吗下,Symfony嵌入和验证CSRF令牌自动为你。ob娱乐下载这意味着您可以利用CSRF保护什么事情都不做。事实上,每个表单在本文中利用CSRF保护!
CSRF保护是通过添加一个表单隐藏字段——调用_token
默认情况下,包含一个值,只有你和你的用户知道。这可以确保用户——而不是其他实体——提交给数据。ob娱乐下载Symfony自动验证这个令牌的存在和准确性。
的_token
字段是一个隐藏字段,如果包括会自动呈现form_end ()
函数模板,它确保所有unrendered字段输出。
谨慎
因为令牌是存储在会话中,一个会话开始自动就呈现一种形式与CSRF保护。
CSRF令牌可以定制form-by-form基础上。例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/ /……使用AppBundle\实体\任务;使用ob娱乐下载\组件\OptionsResolver\OptionsResolver;类TaskType扩展AbstractType{/ /……公共函数configureOptions(OptionsResolver美元解析器){美元解析器- >setDefaults ([“data_class”= >任务::类,“csrf_protection”= >真正的,“csrf_field_name”= >“_token”,/ /一个唯一键来帮助生成令牌的秘密“csrf_token_id”= >“task_item”]);}/ /……}
禁用CSRF保护,设置csrf_protection
选择错误的。也可以在您的项目在全球范围内的定制。有关更多信息,请参见形式配置参考部分。
请注意
的csrf_token_id
选项是可选的但是,极大地增强了安全生成的令牌使它不同形式。
谨慎
CSRF标记是不同的对于每一个用户。这就是为什么你需要谨慎,如果你试图缓存页面形式包括这种保护。有关更多信息,请参见缓存的页面包含CSRF保护形式。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。