除了Apache Sling反向链接过滤器之外,Adobe还提供了新的CSRF保护框架来抵御此类攻击。
框架利用令牌来保证客户端请求的合法性。 令牌在表单发送到客户端时生成,并在表单发送回服务器时验证。
匿名用户的发布实例上没有令牌。
任何依赖于granite.jquery
依赖关系的组件都将自动从CSRF保护框架中受益。 如果任何组件的情况并非如此,则必须先向granite.csrf.standalone
声明依赖项,然后才能使用框架。
要使用令牌,您需要将/etc/keys/hmac
二进制文件复制到部署中的所有实例。 将HMAC密钥复制到所有实例的一种简便方法是,创建一个包含密钥的包,并通过包管理器在所有实例上安装该密钥。
另外,请务必进行必要的Dispatcher配置更改,以便使用CSRF保护框架。
如果将清单缓存与Web应用程序一起使用,请确保向清单中添加“*”,以确保令牌不会使CSRF令牌生成调用离线。 有关详细信息,请参阅此链接。
有关CSRF攻击及其缓解方法的更多信息,请参阅跨站点请求伪造OWASP页面。