机房收费系统之结账BUG

Jun 07, 2016 pm 04:00 PM
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
ログイン後にコピー
通过对比这两条SQL语句,我们就能知道,如果结账-购卡的时候就把IsCheck字段改成“已结账”那么我们结账-退卡的时候就查不出来这条记录。

说完了registerIsCheck和logoutIsCheck字段的由来,下面再说说registerHandler和logoutHandler的由来:

如果我们的卡表里面只有一个Handler字段,那么如果我们在操作员1处购卡,在操作员2处退卡,那么该记录的Handler最后应该是谁呢?

通过以上的论述,相信大家对红色框中的四个字段的由来很信服了,如果大家还有什么不懂地方,可以找我私下讨论。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iPhone で機密コンテンツの警告を有効にし、その機能について学ぶ方法 iPhone で機密コンテンツの警告を有効にし、その機能について学ぶ方法 Sep 22, 2023 pm 12:41 PM

特に過去 10 年間で、モバイル デバイスは友人や家族とコンテンツを共有する主な手段となりました。アクセスしやすく使いやすいインターフェイスと、画像やビデオをリアルタイムでキャプチャできる機能により、コンテンツの作成と共有に最適です。ただし、悪意のあるユーザーがこれらのツールを悪用して、閲覧に適しておらず、ユーザーの同意を必要としない不要な機密コンテンツを転送することは簡単です。これを防ぐために、iOS17では「センシティブコンテンツ警告」という新機能が導入されました。それとiPhoneでの使用方法を見てみましょう。新しい機密コンテンツに関する警告とは何ですか?またその仕組みは何ですか?前述したように、機密コンテンツの警告は、ユーザーが iPhone などの機密コンテンツを閲覧できないように設計された新しいプライバシーおよびセキュリティ機能です。

Microsoft Edge ブラウザーを 360 ナビゲーションで開くように変更する方法 - 360 ナビゲーションで開くように変更する方法 Microsoft Edge ブラウザーを 360 ナビゲーションで開くように変更する方法 - 360 ナビゲーションで開くように変更する方法 Mar 04, 2024 pm 01:50 PM

Microsoft Edge ブラウザーを開くページを 360 ナビゲーションに変更するにはどうすればよいですか? それは実際には非常に簡単なので、ここで Microsoft Edge ブラウザーを開くページを 360 ナビゲーションに変更する方法を共有します。見てください。皆さんのお役に立てれば幸いです。 Microsoft Edgeブラウザを開きます。以下のようなページが表示されます。右上隅にある三点アイコンをクリックします。 「設定」をクリックします。設定ページの左欄にある「起動時」をクリックします。右の列の図に示されている 3 つの点をクリックし ([新しいタブを開く] をクリックしないでください)、[編集] をクリックして URL を「0」(またはその他の意味のない数字) に変更します。次に、「保存」をクリックします。次に「」を選択します。

ゲームのバグってどういう意味ですか? ゲームのバグってどういう意味ですか? Feb 18, 2024 am 11:30 AM

ゲームのバグとは何ですか? ゲームのプレイ中に、キャラクターが動かなくなったり、タスクが続行できなくなったり、画面がちらついたりするなど、予期せぬエラーや問題が発生することがよくあります。このような異常現象をゲームバグ、つまりゲーム上の不具合やエラーと呼びます。この記事では、ゲームのバグが何を意味し、それがプレイヤーや開発者に与える影響について探っていきます。ゲームのバグとは、ゲームの開発または運用中に発生し、ゲームが正常に実行できなくなったり、予期しない動作を引き起こしたりするエラーを指します。これらのエラーの原因として考えられるのは、

Apple iOS18 のバグの概要 Apple iOS18 のバグの概要 Jun 14, 2024 pm 01:48 PM

Apple の WWDC カンファレンス 2024 が成功裡に終了する中、macos15 が発表されただけでなく、Apple の新しい iOS18 システムのアップデートが最も注目を集めました。Apple の iOS18 の最初のバージョンとして、多くの新機能がありますが、人々は必然的にそれがどうか疑問に思います。 Apple iOS18 にアップグレードする必要がありますが、Apple iOS18 の最新リリースにはどのようなバグがありますか?実際の使用評価の後、以下に Apple iOS 18 のバグの概要を示しますので、見てみましょう。現在、多くのiPhoneユーザーがiOS18へのアップグレードを急いでいますが、さまざまなシステムバグが人々を不快にさせています。一部のブロガーは、「バグが非常に多い」ため、iOS18にアップグレードする場合は注意する必要があると述べています。ブロガーは、あなたのiPhoneが

中国語でCheat Engineを設定するにはどうすればよいですか? Cheat Engine設定中国式方法 中国語でCheat Engineを設定するにはどうすればよいですか? Cheat Engine設定中国式方法 Mar 13, 2024 pm 04:49 PM

CheatEngine は、ゲームのメモリを編集および変更できるゲーム エディタです。しかし、デフォルトの言語は中国語以外なので、多くの友人にとって不便です。今回はCheatEngineで中国語を設定する方法を編集者が詳しく紹介しますので、お役に立てれば幸いです。設定方法 1: 1. ダブルクリックしてソフトウェアを開き、左上隅の「編集」をクリックします。 2. 次に、下のオプションリストで「設定」をクリックします。 3. 開いたウィンドウインターフェイスで、左側の列の「言語」をクリックします

Microsoft Edge でダウンロード ボタンを設定する場所 - Microsoft Edge でダウンロード ボタンを設定する方法 Microsoft Edge でダウンロード ボタンを設定する場所 - Microsoft Edge でダウンロード ボタンを設定する方法 Mar 06, 2024 am 11:49 AM

Microsoft Edge で表示されるダウンロード ボタンを設定する場所をご存知ですか? 以下では、エディターが Microsoft Edge で表示されるダウンロード ボタンを設定する方法を説明します。お役に立てば幸いです。エディターに従って学習しましょうステップ 1: まず、Microsoft Edge ブラウザを開き、下の図に示すように、右上隅にある [...] ロゴをクリックします。ステップ 2: 次の図に示すように、ポップアップ メニューで [設定] をクリックします。ステップ 3: 次に、次の図に示すように、インターフェイスの左側にある [外観] をクリックします。ステップ 4: 最後に、[ダウンロード ボタンを表示] の右側にあるボタンをクリックすると、下図に示すように、灰色から青色に変わります。上記は、エディターが Microsoft Edge でダウンロード ボタンを設定する方法を説明する場所です。

システム手荷物とはどういう意味ですか? システム手荷物とはどういう意味ですか? Nov 09, 2022 pm 02:40 PM

システムバゲージとはシステムのバグのことを指しますが、バグの本来の意味は「バグ」ですが、現在ではシステムのセキュリティポリシーに不備があり、コンピュータに存在する脆弱性を指す言葉として使われるようになりました。攻撃者が許可なくアクセスできる広義の危険 このトピックに関しては、バグはさまざまな分野に現れる抜け穴や欠陥を説明するために使用できます。

Win11 のエラーと問題を整理する Win11 のエラーと問題を整理する Jan 13, 2024 pm 08:21 PM

win11 にアップデートしたいけど、win11 にバグが多いのか、アップデートで問題が発生するのか分からないという人もいますが、実際、win11 には現在バグがありますが、使用にはほとんど影響がありません。 win11 には多くのバグがありますか? 回答: win11 にはまだ多くのバグがあります。ただし、これらのバグは日常の使用にはほとんど影響しません。ユーザーの日常使用に対する要求が高い場合は、後で使用することをお勧めします。 win11 のバグの概要 1. リソース マネージャー 1. メモリ オーバーフローが発生し、リソース マネージャーのメモリ使用量が高くなる場合があります。 2. この状況ではメモリが 70% 以上を占有し、コンピュータがフリーズしたりクラッシュしたりすることがあります。 2. 競合とクラッシュ 1. 一部のアプリケーションには互換性が不十分であり、相互に競合が発生します。 2.紛争手続きは比較的少ないですが、

See all articles