机房收费系统之结账BUG
声明:以下内容只对将卡表和退卡表放在同一张表的同学适用! 最近大家都已经开始做VB.NET机房收费系统重构版,在这里跟大家聊聊我在机房收费系统中发现的漏洞。 在机房收费系统中有这样一个窗体--结账。个人认为结账的功能是:领导对操作员注册退卡进行结账
声明:以下内容只对将卡表和退卡表放在同一张表的同学适用!最近大家都已经开始做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
说完了registerIsCheck和logoutIsCheck字段的由来,下面再说说registerHandler和logoutHandler的由来:
如果我们的卡表里面只有一个Handler字段,那么如果我们在操作员1处购卡,在操作员2处退卡,那么该记录的Handler最后应该是谁呢?通过以上的论述,相信大家对红色框中的四个字段的由来很信服了,如果大家还有什么不懂地方,可以找我私下讨论。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

特別是在過去十年中,行動裝置已成為與朋友和家人分享內容的主要方式。易於存取、易於使用的介面以及即時捕獲圖像和視訊的能力使其成為製作和共享內容的絕佳選擇。但是,惡意使用者很容易濫用這些工具來轉發不需要的敏感內容,這些內容可能不適合查看並未經您的同意。為了防止此類情況發生,iOS17中引入了具有「敏感內容警告」的新功能。讓我們來看看它以及如何在iPhone上使用它。新的「敏感內容警告」是什麼,它是如何運作的?如上所述,敏感內容警告是一項新的隱私和安全功能,旨在幫助防止用戶查看敏感內容,包括iPhone

怎麼更改MicrosoftEdge瀏覽器打開是360導航的頁面呢?其實很簡單,那麼現在小編就和大家一起分享關於更改MicrosoftEdge瀏覽器打開是360導航頁面的方法,有需要的朋友可以來看看哦,希望可以幫助大家。開啟MicrosoftEdge瀏覽器。我們看到是下圖這種頁面。點擊右上角的三點圖示。點選“設定”。在設定頁面的左側欄裡點選「啟動時」。點選右側欄裡的圖中示意的三點(不要能點選「開啟新標籤頁」),然後點選編輯,將網址改成「0」(或其他無意義的數字)。然後點選「儲存」。接下來,選擇“

隨著蘋果WWDC發表會2024圓滿落幕,不僅揭曉了macos15,其中最受關注的還是蘋果iOS18新系統的更新,雖然有很多新功能出現,但是作為蘋果iOS18首版不免讓人糾結是否有必要升級蘋果iOS18,在最新發表的蘋果iOS18中又有哪些BUG存在呢?經過真實的使用測評,以下是蘋果iOS18bug匯總,一起來看看。目前有許多iPhone用戶都搶先升級到了iOS18.但各種系統Bug讓人難受。有部落客表示,升級iOS18要謹慎,因為「Bug多到飛起」。部落客表示,如果你的iPhone是

遊戲bug是什麼意思在玩遊戲的過程中,我們常常會遇到一些意想不到的錯誤或問題,例如角色卡住、任務無法繼續、畫面閃爍等等。這些不正常的現象就被稱為遊戲bug,也就是遊戲中的故障或錯誤。在本文中,我們將探討遊戲bug是什麼意思以及對玩家和開發者的影響。遊戲bug是指在遊戲的開發或運作過程中出現的錯誤,導致遊戲無法正常進行或出現不符合預期的情況。這些錯誤可能是由於

CheatEngine是一款遊戲編輯器,能夠對遊戲的記憶體進行編輯修改。但是它的預設語言是非中文的,對於很多小夥伴來說比較不方便,那麼CheatEngine怎麼設定中文呢?今天小編就跟大家詳細介紹一下CheatEngine設定中文的方法,希望可以幫助到你。 設定方法一 1、雙擊開啟軟體,點選左上角的「edit」。 2、接著點選下方選項清單中的「settings」。 3、在開啟的視窗介面中,點選左側欄中的“languages”

系統bage就是指系統bug;bug原意是“臭蟲”,現在用來指稱電腦上存在的漏洞,原因是系統安全策略上存在的缺陷,有攻擊者能夠在未授權的情況下訪問的危害;廣義上,bug可用作形容各領域範圍內出現的漏洞或缺陷。

大家知道MicrosoftEdge在哪設定顯示下載按鈕嗎?下文小編就帶來了MicrosoftEdge設定顯示下載按鈕的方法,希望對大家能夠有幫助,一起跟著小編來學習吧!第一步:先開啟MicrosoftEdge瀏覽器,點選右上角【...】標識,如下圖所示。步驟二:然後在彈出式選單中,點選【設定】,如下圖所示。第三步:接著點選介面左側【外觀】,如下圖所示。第四步:最後點選【顯示下載按鈕】右側按鈕,由灰變藍即可,如下圖所示。上面就是小編為大家帶來的MicrosoftEdge在哪設定顯示下載按鈕的

有些人想更新win11,但不知道win11bug多嗎,更新會不會出問題,實作在win11有bug,不過對使用影響不大。 win11bug多嗎:答:win11bug現在還是比較多的。不過這些bug對於日常使用的影響不大。如果使用者對於日常的使用要求很高的話,建議還是晚點再使用吧。 win11bug匯總一、資源管理器1、有時候會出現記憶體溢出,導致資源管理器記憶體佔用高。 2.這種情況會導致記憶體佔用超過70%,電腦卡頓、甚至崩潰。二、衝突死機1、部分應用程式相容性不足,導致互相衝突。 2、雖然衝突程序比較少,
