2011年7月7日 星期四

又遇到身份驗證缺陷 (Broken Authentication) 的程式

客戶的新需求, 密碼規則變更:
 ◎ 1. 須八碼以上,十六碼以下,並英數字混合可有特殊符號ex.!@#(但不包括全形符號與$).
 ◎ 2. 每三個月更換一次.

於是著手從即有的別人寫好的應用程式 copy出來修改, 發現一些問題.



--------------------------------------------------
 ■ 問題 1: 身份驗證缺陷 (Broken Authentication)
--------------------------------------------------
某些程式會透過 url 來傳送使用者帳號(ID). 這是一個嚴重的問題, 代表一般的 user 也許可以修改到管理者的資料!

 ● 解決方法:
 ◎ 1. 把帳號先放到 session 裡,
 ◎ 2. 在接收帳號的程式碼, 修改成從 session 裡取值.


--------------------------------------------------
 ■ 問題 2:
--------------------------------------------------
如果固定都是從 session 取得帳號資料, 那這支程式就不能用來修改其他帳號的資料,

 ● 解決方法:
 ◎ 1. 在接收帳號的地方, 再增加權限的判斷, 是管理者才能做 使用者帳號(ID) 的 request,
反之其他人在 request 完之後, 固定再把 使用者帳號(ID) 指派成 session 裡的 使用者帳號(ID).

沒有留言:

張貼留言

Facebook 留言板