2011年6月2日 星期四

身份驗證缺陷 (Broken Authentication)

今天在研究一份資料報告,有一個身份驗證缺陷 (Broken Authentication)的弱點. 我花了1小時, trace 程式, 和看報告, 終於找到原因, 我覺得當初寫程式的人真是豬頭, 居然會犯下醬子的錯. @_@;

程式1: member_edit.asp
他在 show form 時, 是從 session 裡去取得 user 當初 login 時的帳號(userid), 並把 userid 放到 form 裡的一個 hidden 欄位.


程式2: member_edit_act.asp
直接 request hidden 的欄位裡的值, 拿來做 SQL 的運算,
結果 user 把帳號值置換成別人的帳號, 就把別人的資料 overwrite 過去, 然後就可以用別人的帳號來 login.


為什麼當初寫的人, 會沒有想到這個問題?
需不需要做教育訓練?
如果一開始就可以寫出沒有弱點的程式, 該有多好. 呵呵呵.

沒有留言:

張貼留言

Facebook 留言板