有没有我可以使用的透明库或简单的东西,所以我可以防止使用Perl和Apache进行跨站点请求伪造(CSRF)?如何为表单生成令牌并在服务器端验证它们?
看看CGI :: Application :: Plugin :: ProtectCSRF做了什么.该模块用于CGI :: Application框架.
为其他框架修改模块应该不会太难.基本上,用户表单会使用生成的标记添加隐藏的HTML字段,并且会话对象将获得相同的标记.提交表单时,将表单提交的标记与会话对象(位于服务器上)中的标记进行比较.如果它们不匹配,可能会发生CSRF.
还有一个Catalyst插件:Catalyst :: Controller :: RequestToken
这些模块使用属性处理程序,因此现有应用程序只需要很少的修改.