機房收費系統 之 結賬BUG
宣告:以下內容只對將卡表和退卡表放在同一張表的同學適用!
最近大家都已經開始做VB.NET機房收費系統重構版,在這裡跟大家聊聊我在機房收費系統中發現的漏洞。
在機房收費系統中有這樣一個窗體--結賬。個人認為結賬的功能是:領導對操作員註冊退卡進行結賬,簡單的說就是領導來收錢,如果你是一個操作員,每天充值退卡,你要知道你這段時間都賺了多少錢。
今天要說的重點就是卡表的結賬!在結賬中,有一個購卡,有一個退卡。也就是說,對於同一張卡,它註冊後需要結賬一次,退卡後也需要結賬一次。
讓我們來看看我資料庫的卡表設計:
這裡我們先不要糾結卡號是否為主鍵,每個欄位的資料型別對不對。今天主要講的是圖中紅色框框中的東西!如果你的註冊和退卡在一張表中,如果你的卡表設計沒有這四個欄位,那麼我可以很肯定的告訴你,你的結賬有漏洞。
下面我們就來具體的說明為什麼沒有這四個欄位就會有漏洞:
如圖,一般大家的卡表設計都是這樣,只有一個IsCheck欄位和一個Handler欄位。這樣我們在結賬的時候,如果有一張卡正在使用、未結賬,然後我們就能在結賬-購卡中把它查詢出來。然後我們現在把它結賬,這條記錄的IsCheck欄位就變成“已結賬”,然後我們再對這張卡進行退卡操作!這時的退卡就沒有結賬,可是我們在結賬-退卡中卻查詢不出來!這時為什麼呢?現在我們來對比一下我們查詢時使用的SQL語句:
結賬-購卡:
結賬-退卡:
通過對比這兩條SQL語句,我們就能知道,如果結賬-購卡的時候就把IsCheck欄位改成“已結賬”那麼我們結賬-退卡的時候就查不出來這條記錄。
通過以上的論述,相信大家對紅色框中的四個欄位的由來很信服了,如果大家還有什麼不懂地方,可以找我私下討論。
最近大家都已經開始做VB.NET機房收費系統重構版,在這裡跟大家聊聊我在機房收費系統中發現的漏洞。
在機房收費系統中有這樣一個窗體--結賬。個人認為結賬的功能是:領導對操作員註冊退卡進行結賬,簡單的說就是領導來收錢,如果你是一個操作員,每天充值退卡,你要知道你這段時間都賺了多少錢。
今天要說的重點就是卡表的結賬!在結賬中,有一個購卡,有一個退卡。也就是說,對於同一張卡,它註冊後需要結賬一次,退卡後也需要結賬一次。
讓我們來看看我資料庫的卡表設計:
這裡我們先不要糾結卡號是否為主鍵,每個欄位的資料型別對不對。今天主要講的是圖中紅色框框中的東西!如果你的註冊和退卡在一張表中,如果你的卡表設計沒有這四個欄位,那麼我可以很肯定的告訴你,你的結賬有漏洞。
下面我們就來具體的說明為什麼沒有這四個欄位就會有漏洞:
如圖,一般大家的卡表設計都是這樣,只有一個IsCheck欄位和一個Handler欄位。這樣我們在結賬的時候,如果有一張卡正在使用、未結賬,然後我們就能在結賬-購卡中把它查詢出來。然後我們現在把它結賬,這條記錄的IsCheck欄位就變成“已結賬”,然後我們再對這張卡進行退卡操作!這時的退卡就沒有結賬,可是我們在結賬-退卡中卻查詢不出來!這時為什麼呢?現在我們來對比一下我們查詢時使用的SQL語句:
結賬-購卡:
select * from T_Card where IsCheck='未結賬' and handler=@handler
select * from T_Card where regitsterIsCheck='未結賬' and registerHandler=@handler
結賬-退卡:
select * from T_Card where status='不使用' and IsCheck='未結賬' and handler=@handler
select * from T_Card where status='不使用' and logoutIsCheck='未結賬' and logoutHandler=@handler
通過對比這兩條SQL語句,我們就能知道,如果結賬-購卡的時候就把IsCheck欄位改成“已結賬”那麼我們結賬-退卡的時候就查不出來這條記錄。
說完了registerIsCheck和logoutIsCheck欄位的由來,下面再說說registerHandler和logoutHandler的由來:
通過以上的論述,相信大家對紅色框中的四個欄位的由來很信服了,如果大家還有什麼不懂地方,可以找我私下討論。
相關文章
- 機房收費系統總結——系統框架框架
- 【機房收費系統】上下機分析
- 機房收費系統總結——資料庫框架資料庫框架
- 機房收費系統總結——窗體程式碼框架框架
- 機房收費系統之結賬與報表(二)週報表製作《一學就會傻瓜版》
- 機房收費系統初體驗——心路歷程
- 機房收費系統初體驗——SQL語句解析SQL
- 設計模式之蛋糕店結賬系統設計模式
- 物業收水電費系統
- 線上CRM系統怎麼收費?
- 機房上機總結
- 機房合作總結
- 推薦系統之資訊繭房問題
- Linux系統收費嗎?好不好?Linux
- Linux是什麼系統?收費嗎?Linux
- 機房重構總結
- 二手手機收售系統
- 運維自動化之賬單系統運維
- 微信訂貨系統軟體哪個好用?如何收費?
- 《Java實用系統開發指南》電子收費版Java
- 破解手機的任意收費遊戲遊戲
- 宜信支付結算賬戶系統淺析
- SAP MM VL32N收貨過賬報錯 - 系統狀態 HUAS 是活動的 - 之對策
- win10系統怎麼解除微軟賬戶繫結 win10系統解除微軟賬戶繫結操作方法Win10微軟
- Linux系統學習之Linux賬號管理Linux
- 機器視覺系統的典型結構之照明解析視覺
- 智慧校園:資料機房動環監控報警系統
- 綜合佈線機房環境設計的供配電系統
- 嵌入式工控機NIS-H899在智慧ETC高速收費系統中的應用
- 軟體系統測試有哪些測試過程?系統測試報告如何收費?測試報告
- 系統bug report
- [譯]搭建賬戶系統
- 數字醫藥系統搭建|智慧藥房系統原始碼原始碼
- postgresql收費嗎SQL
- C#機房重構之註冊窗體C#
- 數商雲採購系統對賬結算功能介紹
- Windows10系統下解除微軟賬戶繫結的方法Windows微軟
- 營帳系統之二:賬務系統概念