ASP(Active Serverページ)の出現以来、メンテナンスが容易でプラットフォームが関係ない強力なアプリケーションシステムを作成できるため、ASPテクノロジーはますます多くのネットワークプログラマーに愛されています。ただし、ASPは、ASP暗号化プログラムが使用されていても、コンフォリレイ型であり、スクリプト言語です。
SPアプリケーションは違法にコピーされていません。高官の場合、ASPプログラムをサーバーから他の不正なWebサイトに簡単にコピーできます。これにより、ASPアプリケーションの商業化がいくつかの困難をもたらします。 Diskシリアル番号によって生成されたランダム性に基づいて、Microsoftが提供する公式ASPスクリプト暗号化プログラムScreAnc.exeと組み合わせて、Diskシリアル番号によって生成されたランダム性に基づいて、開発されたASPプログラムを効果的に保護する方法は、この問題を公式に解決しました。
ディスクIDと呼ばれるディスクシリアル番号は、ディスクがフォーマットされているときに生成されるディスク識別情報です。同じマシンの2つの形式は、DOSとWintの後のバージョンを使用して使用します。 Windows9.XからMS-DOSに切り替えて、「0A48-1CD7」と同様のこのシリアル番号が表示されるように、DIRコマンドを入力します。使用期間が利用可能になった後、オンラインで新しい承認されたシリアル番号(許可を使用)を申請するには、一定期間使用される一部のソフトウェアが必要です。この承認されたシーケンス番号のかなりの部分では、静的ディスクシーケンス番号のバインディング時間を使用します。インストール後、プログラムが非初期的なインストール環境に違法にコピーされた場合でも、プログラムは使用できません。
上記の考えは、VC、VB、およびDeliphiのプログラミング言語で簡単に達成できます。 VBScriptは、強力で安全なユーザー言語として、クライアントシステムによって制限されていません。したがって、この記事ではVBScriptを使用し、上記のアイデアを実現するために、構築されたASP -Inコンポーネントファイルシステムを組み合わせています。 以下の手順は、特定の状況に応じてわずかに変更されており、実際のASPアプリケーションシステムに適用できます。
説明の例として、この記事では、アクセスデータベースセキュリティメカニズムを使用しています。詳細を容易にするために、最初にアクセスデータベースID.MDB(パスワード「KXJ」)を作成し、DriveINFOテーブル内部を構築します。
ID(自動番号);
Serno(テキスト、12、ディスクシリアル番号(10 -in));
Wrimark(番号、1、書き込みロゴ)。
説明します
ワリマーク値は0です。つまり、法律ユーザーがシステムをインストールしていないことを意味し、値はシステムのインストールを表す1です。値が1で、シリアル番号が現在のディスクと一致しない場合、違法なコピーユーザーであると判断されます。
初期化の場合、最初に新しいレコードを定義する場合、各フィールドの初期値はそれぞれ1,12345678,0です。
たとえば、C:/interpub/wwwrootの下で、同じディレクトリで、ホームページのdefault.asp、法的ユーザーホームページの成功、違法なインストールユーザープロンプトページfail.htmおよびid.mdbシリアル番号ストレージライブラリを配置します。
各ASPファイルの書き込み操作は次のとおりです。
1. FrontPage(またはNotePad)を使用して、新しいASPファイルdefault.aspを作成し、次のプログラムコードを入力します。
<html>
<head>
<Title>サンプル</title>
</head>
<%dim conn、fs、f
conn = server.createObject( "adodb.connection")を設定します
conn.open "driver = {microsoftアクセスドライバー(*.mdb)}; uid =; pwd = kxj; dbq ="&server.mappath( "id.mdb"))
fs = server.createObject( "scripting.filesystemObject")を設定します
testdrive = server.mappath( "/driveinfo.asp"))
''マッパスで現在のディスク形成を取得します
testdrive = left(testdrive、3)
f = fs.getdrive(testdrive)を設定します
'' GetDriveメソッドを呼び出して、ドライブに変数を与えます
mysql = "select * from driveinfo where id = 1"
rscheck = server.createObjectを設定します
rscheck.open mysql、conn、1,1
fser = trim(f.serialnumber)
''現在のディスクシリアル番号を取得します
strserno = trim(rscheck.fields( "serno"))
strmark = rscheck.fields( "" wrimark ")
strserno <> fserおよびstrmark = 0の場合
''初めてインストールされた場合、ライティングロゴは1です
session( "pass")= true
''ユーザーセッションを定義し、グローバルASPドキュメント識別変数として配置しました
rsmain = server.createObject( "adodb.recordset")を設定します
mysql1 = "driveinfo serno ="&fser& "、wrimark = 1"を更新する
rsmain.open mysql1、conn、1,2
respons.write( "<" <"<"
成功しました!
rsmain = Nothingを設定します
それ以外
strserno = fserの場合
''法律ユーザーが再び入る場合
session( "pass")= true
respons.write( "<" << href = '' success.asp ''>あなたはウェブサイトマネージャーによって承認されています、受け入れることを歓迎します!<// a> ")
それ以外
''違法なコピーユーザー
session( "pass")= false
Response.write( "<" <"<" <"<" <"<" <"、 'fail.htm' '> asp document。
ifを終了します
ifを終了します
respons.write( "<br>")
Response.write( "ドライブのボリュームシリアル番号"&testdrive)
Response.Write(F.SerialNumber)