84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
php 做手機簡訊驗證把驗證存在session中安全嗎
session 資料庫 快取
存哪裡裡面好點呢
温故而知新,可以为师矣。 博客:www.ouyangke.com
資料庫。 簡訊驗證碼要考慮幾個約束:1.多少秒之內同一個手機號不得再接收短信2.同一個ip一個時間段裡不能調用多少次,為了安全,或許你還需要加上一天之內短信不能超過多少條。 所以這些約束的實作用資料庫比較好。 session肯定不行。備註: 加上圖形驗證碼,不然介面容易遭受攻擊哦。
建議在cache 裡面 例如 redis memcached 都可以.cache 的效能比DB要的多
安全,因為session在伺服器上,客戶端看不到,至於session的儲存方式,可以預設檔案session,可以session入庫,還可以用記憶體來存,例如上面有人說的redis memcache等,也可以在linux下用自己寫的緩存,都行,效率和成本只能有一個,用緩存成本高,用資料庫效率低
但實際上,現在很少公司自己搞這個,都用第三方,流量低的網站第三方划算,流量高的網站,你還缺這點錢?
安全是相對的,你如果能保證cookie被竄改伺服器能發現就是安全的,這一點可以透過動態簽章來實現,動態簽章可以是value、key、time的hash,之後伺服器再對動態簽章進行驗證。不過一般這個業務場景用redis等快取來實現比較方便,不建議用session,session的超時事件沒有快取好控制。
資料庫。 簡訊驗證碼要考慮幾個約束:1.多少秒之內同一個手機號不得再接收短信2.同一個ip一個時間段裡不能調用多少次,為了安全,或許你還需要加上一天之內短信不能超過多少條。 所以這些約束的實作用資料庫比較好。 session肯定不行。備註: 加上圖形驗證碼,不然介面容易遭受攻擊哦。
建議在cache 裡面 例如 redis memcached 都可以.
cache 的效能比DB要的多
安全,因為session在伺服器上,客戶端看不到,至於session的儲存方式,可以預設檔案session,可以session入庫,還可以用記憶體來存,例如上面有人說的redis memcache等,也可以在linux下用自己寫的緩存,都行,效率和成本只能有一個,用緩存成本高,用資料庫效率低
但實際上,現在很少公司自己搞這個,都用第三方,流量低的網站第三方划算,流量高的網站,你還缺這點錢?
安全是相對的,你如果能保證cookie被竄改伺服器能發現就是安全的,這一點可以透過動態簽章來實現,動態簽章可以是value、key、time的hash,之後伺服器再對動態簽章進行驗證。不過一般這個業務場景用redis等快取來實現比較方便,不建議用session,session的超時事件沒有快取好控制。