簡體   English   中英

數據庫還是會話? 存儲令牌的位置

[英]database or sessions ? where to store tokens

令牌是防止csrf攻擊的好工具

對於用戶的每個請求,您的系統必須生成一個唯一的令牌並將其存儲在某個位置

下次客戶要求執行某些操作時,系統將驗證令牌是否存在以及令牌是否仍然有效

如果我們在會話中存儲令牌,則會話將會變得太大,這將占用大量內存,因為CPU在響應請求時將整個會話加載到ram中,例如CPU為1Gb,1000個用戶使用1個會話(每個會話1Mb),CPU將無法處理任何事情,這可能是典型的ddos攻擊(要求越來越多的令牌知道它們存儲在會話中)

在另一邊,將令牌存儲在數據庫中有自己的弱點,

您使用哪種方法存儲令牌?

使用會話,每個會話1MB是相當高的IMO。 由於可以將PHP的會話處理程序切換為使用其他后端,因此您可以靈活地將它們存儲在磁盤/ memcached / mysql的后面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM