diff --git a/Cargo.lock b/Cargo.lock index 73e291e..09f9267 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2650,11 +2650,15 @@ dependencies = [ "chrono", "dotenvy", "fluent-templates", + "form_urlencoded", + "futures-util", + "hmac", "include_dir", "insta", "loco-oauth2", "loco-rs", "migration", + "multer", "passwords", "regex", "reqwest", @@ -2663,6 +2667,8 @@ dependencies = [ "serde", "serde_json", "serial_test", + "sha2", + "subtle", "time", "tokio", "totp-rs", diff --git a/Cargo.toml b/Cargo.toml index 06a468f..e242543 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,6 +51,13 @@ passwords = "3.1.16" tower-sessions = "0.14" # TOTP (Google Authenticator) for optional two-factor auth totp-rs = { version = "5", features = ["qr", "gen_secret"] } +# CSRF: HMAC-signed double-submit token + body inspection for the `_csrf` field +hmac = { version = "0.12" } +sha2 = { version = "0.10" } +subtle = { version = "2.6" } +form_urlencoded = { version = "1" } +multer = { version = "3" } +futures-util = { version = "0.3" } [[bin]] name = "kompress-eshop-cli" diff --git a/assets/views/admin/base.html b/assets/views/admin/base.html index a2734d2..53f85a0 100644 --- a/assets/views/admin/base.html +++ b/assets/views/admin/base.html @@ -43,6 +43,36 @@ {% block head %}{% endblock head %} + +
+ + .