نظرًا لأن ظهور ASP (صفحات الخادم النشط) ، لأنه يمكن أن ينشئ نظامًا قويًا للتطبيق يسهل الحفاظ عليه ولا يهم المنصة ، فقد أحببت تقنية ASP المزيد والمزيد من مبرمجي الشبكة. ومع ذلك ، فإن ASP هو مجرد نوع غير متكافئ ، يتم استخدام لغة البرنامج النصي على جانب الخادم.
لا يتم نسخ طلبات SP بشكل غير قانوني. بالنسبة لمسؤولي السلطة العليا ، يمكنك بسهولة نسخ برنامج ASP من الخادم إلى مواقع الويب الأخرى غير المصرح بها. هذا يجلب بعض الصعوبات في تسويق تطبيقات ASP. كيفية حماية برامج ASP المتقدمة بشكل فعال ، استنادًا إلى العشوائية التي تم إنشاؤها بواسطة الرقم التسلسلي للقرص ، إلى جانب برنامج تشفير البرنامج النصي الرسمي ASP Screanc.exe المقدم من Microsoft يحل هذه المشكلة رسميًا.
الرقم التسلسلي للقرص ، المشار إليه باسم معرف القرص ، هو معلومات تعريف القرص التي تم إنشاؤها عند تنسيق القرص. تنسيقان من نفس الجهاز لإنشاء رقم تسلسلي ثابت بشكل عشوائي. قم بالتبديل من Windows9.x إلى MS-DOS ، واكتب أمر DIR للعودة. سيُطلب من بعض البرامج المستخدمة لفترة من الوقت التقدم بطلب للحصول على رقم تسلسلي معتمد (باستخدام تصريح) عبر الإنترنت بعد توفر فترة الاستخدام. يستخدم جزء كبير من رقم التسلسل المصرح به وقت ربط رقم تسلسل القرص الثابت. بعد التثبيت ، لا يمكن استخدام البرنامج حتى إذا تم نسخ البرنامج بشكل غير قانوني في بيئة التثبيت غير الملائمة.
من السهل تحقيق الأفكار المذكورة أعلاه في لغة برمجة VC و VB و Deliphi. VBScript ، كلغة مستخدم قوية وآمنة ، يقتصر على نظام العميل. لذلك ، تستخدم هذه المقالة VBScript وتجمع بين نظام ملفات مكون ASP المضمّن لتحقيق الأفكار المذكورة أعلاه. يتم تعديل الإجراءات التالية قليلاً وفقًا للموقف المحدد ، والذي يمكن تطبيقه على نظام تطبيق ASP الفعلي.
كمثال على التفسير ، تستخدم هذه المقالة آلية أمان قاعدة بيانات الوصول. لتسهيل التفصيل ، نقوم أولاً بإنشاء معرف قاعدة بيانات الوصول.
المعرف (الرقم التلقائي) ؛
Serno (النص ، 12 ، الرقم التسلسلي للقرص (10 -في)) ؛
Wrimark (رقم ، 1 ، شعار الكتابة).
يوضح
قيمة Wrimark هي 0 تعني أن المستخدم القانوني لم يثبت النظام ، والقيمة هي 1 تمثل تثبيت النظام. عندما تكون القيمة 1 ولا يتطابق الرقم التسلسلي مع القرص الحالي ، فإنه مصمم على أن يكون مستخدمي نسخ غير قانوني.
عند التهيئة ، تحدد أولاً سجلًا جديدًا ، تبلغ القيمة الأولية لكل حقل 1،12345678،0 ، على التوالي.
في نفس الدليل ، على سبيل المثال ، بموجب C:/interpub/wwwroot ، ضع الصفحة الرئيسية الافتراضية. asp ، نجاح المستخدم القانوني للصفحة الرئيسية.
عملية كتابة كل ملف ASP كما يلي:
1. استخدم ProntPage (أو المفكرة) لإنشاء ملف ASP جديد default.asp وأدخل رمز البرنامج التالي:
<html>
<head>
<title> عينة </title>
</head>
<٪ dim conn ، fs ، f
تعيين conn = server.createObject ("adodb.connection")
conn.open "driver = {microsoft access driver (*.mdb)} ؛ uid = ؛ pwd = kxj ؛ dbq =" & server.mappath ("id.mdb")
set fs = server.createObject ("scripting.filesystemObject")
TestDrive = server.mappath ("/driveinfo.asp")))
"الحصول على تشكيل القرص الحالي مع mappath
TestDrive = Left (TestDrive ، 3)
تعيين f = fs.getDrive (TestDrive)
استدعاء طريقة getDrive وأعطي محرك الأقراص متغيرًا
mysql = "حدد * من DriveInfo حيث id = 1"
تعيين rscheck = server.createBject
rscheck.Open mysql ، conn ، 1،1
fser = trim (F.SerialNumber)
احصل على الرقم التسلسلي للقرص الحالي
strserno = trim (rscheck.fields ("serno")))
strmark = rscheck.fields ("" Wrimark ")
إذا كان strserno <> fser و Strmark = 0 ثم
إذا تم تثبيته لأول مرة ، فإن شعار الكتابة هو 1
الجلسة ("تمرير") = صحيح
حدد جلسة المستخدم ووضعها كمتغير تحديد مستند ASP العالمي
تعيين rsmain = server.createBject ("adodb.recordset")
mySQL1 = "Update DriveInfo serno =" & fser & "، wrimark = 1"
rsmain.open mysql1 ، conn ، 1،2
Response.write ("<" <"<"
ناجح!
تعيين rsmain = لا شيء
آخر
إذا strserno = fser ثم
إذا دخل المستخدم القانوني مرة أخرى
الجلسة ("تمرير") = صحيح
Response.write ("<" << href = '' 'success.asp' '> أنت معتمد من قبل مدير موقع الويب ، يرحب بقبوله! <// a> ")
آخر
مستخدم نسخ غير قانوني
الجلسة ("تمرير") = خطأ
Response.write ("<" <"<" <"<" <"<" ، 'fail.htm' '> من غير القانوني نسخ مستند ASP الخاص بـ ASP.
إنهاء إذا
إنهاء إذا
الرد. write ("<br>")
Response.write ("رقم التسلسل المولود في محرك الأقراص" و TestDrive)
استجابة. write (F.SerialNumber)