[英]CSRF Token Generation in Javascript with Django
本質上,您提議的是Double Submit Cookies CSRF預防方法的一種變體。 之所以可行,是因為攻擊者無法在您的域的瀏覽器中讀取或寫入Cookie值,因此無法復制要與表單一起提交的相同值。
當用戶對網站進行身份驗證時,該網站應生成(加密強度高)偽隨機值
這是JavaScript方法的最大問題-JavaScript中的隨機數生成器不是加密安全的。 您可以在這里嘗試一種解決方案 -您的里程可能因瀏覽器而異。 捕獲鼠標的移動聽起來很有趣,但是使用這種方法時必須格外小心-您必須防止在未檢測到任何形式的情況下提交任何形式,因為在實際CSRF攻擊中可能就是這種情況。 如果可能的話,請避免使用安全性之類的東西,最好使事情簡單化-復雜性是安全性的大敵。
我真的很喜歡SilverlightFox的解釋,但我想我會添加一些評論。 您的服務器已經參與了至少第一個請求。 借此機會從模板中設置一個javascript變量,然后繼續在頁面的生命周期中使用它。
{% extends 'base.html' %}
<script>
window.csrf_token = "{% csrftoken %}";
</script>
它避免了在客戶端生成令牌的復雜性,但仍允許您將令牌用於動態創建的任何表單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.