上節(jié)課完成了公共圖書庫(kù)存查詢功能。
這節(jié)課來(lái)完成用戶個(gè)人信息查詢功能撞反。
編寫用戶個(gè)人信息查詢功能
首先需要編寫一個(gè)用戶通過(guò)IC卡號(hào)和密碼登錄的功能,登錄成功之后頁(yè)面顯示用戶的信息搪花,包括借閱歷史清單以及目前待支付的總借閱費(fèi)遏片。
用戶登錄顯示文件,user_login.php代碼如下:
用戶登錄頁(yè)面處理文件撮竿,user_login_do.php代碼如下:
用戶個(gè)人信息顯示文件吮便,user_index.php代碼如下:
用戶個(gè)人信息頁(yè)面處理文件,user_index_do.php代碼如下:
數(shù)據(jù)庫(kù)操作文件幢踏,entity.php代碼修改如下:
測(cè)試用戶個(gè)人信息查詢功能
瀏覽器訪問(wèn)公共端圖書庫(kù)存查詢頁(yè)面:
點(diǎn)擊右上角的登錄按鈕:
然后輸入用戶的IC卡號(hào)和密碼和驗(yàn)證碼髓需,然后點(diǎn)擊“登錄”按鈕:
可以看到用戶的個(gè)人信息,待支付借閱費(fèi)信息房蝉,用戶的借閱歷史記錄僚匆。
全部功能測(cè)試并修正代碼
到這里為止微渠,圖書館管理系統(tǒng)的全部的功能已經(jīng)都完成了,可以開(kāi)始按照之前的系統(tǒng)測(cè)試案例設(shè)計(jì)進(jìn)行全面的功能測(cè)試咧擂。
學(xué)哥經(jīng)過(guò)測(cè)試逞盆,發(fā)現(xiàn)以下問(wèn)題:
1.check_auth權(quán)限檢查有漏洞
在員工登錄到后臺(tái)之后,不同的員工根據(jù)權(quán)限設(shè)置可以訪問(wèn)不同的菜單和頁(yè)面屋确,但是在check_auth.php里面只是檢查了是否有權(quán)限纳击,并沒(méi)有檢查具體的頁(yè)面權(quán)限,這就存在漏洞攻臀,某個(gè)員工登錄之后焕数,可以通過(guò)直接訪問(wèn)頁(yè)面url,從而繞過(guò)權(quán)限限制刨啸。
例如堡赔,使用zhangsan賬號(hào)登錄,本來(lái)張三只有2個(gè)菜單的權(quán)限设联,就是“圖書管理”和“庫(kù)存管理”善已,然是如果zhangsan登錄之后,直接在瀏覽器地址輸入return_list.php离例,直接訪問(wèn)就可以訪問(wèn)這個(gè)頁(yè)面换团,這就是有漏洞了。需要補(bǔ)充檢查代碼宫蛆。
修改方案:
首先修改check_auth.php如下艘包,檢查每個(gè)頁(yè)面相應(yīng)的權(quán)限限制:
然后修改employee_list.php,將$top_menu_index=1;代碼從下面移動(dòng)到第一行代碼耀盗,如下:
然后按照上面的方法想虎,修改其它所有的一覽和詳細(xì)頁(yè)面,文件清單如下:
employee_detail.php
books_list.php
books_detail.php
stock_list.php
stock_detail.php
user_list.php
user_detail.php
borrow_list.php
return_list.php
fillcard_list.php
order_list.php
2.新建用戶的收押金訂單叛拷,刪除時(shí)排除此訂單刪除用戶并刪除此訂單
修改entity.php文件如下:
3.損毀丟失的書本的狀態(tài)要修改為已損毀舌厨,這樣就可以防止再次將這本書上架并被借出,從而產(chǎn)生邏輯錯(cuò)誤忿薇。
修改entity.php文件如下:
4.庫(kù)存和用戶管理的頁(yè)面初始化的時(shí)候裙椭,要設(shè)置狀態(tài)檢索條件的初始值為“全部”。
修改stock_list_do.php文件如下:
修改user_list_do.php文件如下: