1个不稳定版本

0.1.0 2020年6月30日

#12 in #csrf

MIT许可证

8KB
133

xsrf

Build Crates.io Documentation

提供跨站请求伪造保护的库。有关如何使用此库的说明,请参阅文档


lib.rs:

提供跨站请求伪造保护的库。

正确实现这可能很复杂,此库旨在提供原语以实现此功能,同时确保不会过于容易出错。但请注意,这还需要与HTTP层正确结合,以确保提供保护。

警告

此库提供原语,并旨在用作构建块。建议的做法是编写一个库,将其与您最喜欢的HTTP堆栈集成。例如,如果您正在使用actix,则不要直接使用它,而是使用actix-xsrf

用法

此库使用现在似乎已成为各种流行框架标准方法的某种方法。

  • 发出并存储在cookie或会话中的CookieToken。请记住使用安全的签名cookie。
  • 从这个CookieToken中,可以发出一个或多个RequestToken。您可以为每个请求发出一个,也可以发出多个。任何数量的它们都可以与原始的CookieToken进行验证。
  • RequestToken应嵌入到您的HTML表单中,或通过HTTP头发送(通常用于在JavaScript中发起的请求)。
  • 服务器端应在正确的情况下进行验证。

注意

  • rand用于生成加密安全的令牌。
  • RequestToken使用一次性填充并使用CookieToken进行异或操作,以防止BREACH攻击。
  • subtle用于防止时间攻击。

依赖项

~1–1.6MB
~33K SLoC