เนื่องจากการถือกำเนิดของ ASP (หน้าเซิร์ฟเวอร์ที่ใช้งานอยู่) เนื่องจากสามารถสร้างระบบแอปพลิเคชันที่แข็งแกร่งซึ่งง่ายต่อการบำรุงรักษาและไม่สำคัญกับแพลตฟอร์มเทคโนโลยี ASP ได้รับความรักจากโปรแกรมเมอร์เครือข่ายมากขึ้นเรื่อย ๆ อย่างไรก็ตาม ASP เป็นเพียงประเภทที่ไม่ใช่การรวบรวมภาษาสคริปต์ที่ทำงานอยู่บนฝั่งเซิร์ฟเวอร์
แอปพลิเคชัน SP ไม่ได้คัดลอกอย่างผิดกฎหมาย สำหรับผู้ดูแลระบบที่มีอำนาจสูงคุณสามารถคัดลอกโปรแกรม ASP จากเซิร์ฟเวอร์ไปยังเว็บไซต์ที่ไม่ได้รับอนุญาตอื่น ๆ ได้อย่างง่ายดาย สิ่งนี้นำมาซึ่งความยากลำบากในการค้าแอปพลิเคชัน ASP ในเชิงพาณิชย์ วิธีการปกป้องโปรแกรม ASP ที่พัฒนาขึ้นอย่างมีประสิทธิภาพโดยอิงจากการสุ่มที่สร้างขึ้นโดยหมายเลขซีเรียลดิสก์รวมกับโปรแกรมการเข้ารหัสสคริปต์ ASP อย่างเป็นทางการ Screanc.exe ที่จัดทำโดย Microsoft แก้ไขปัญหานี้อย่างเป็นทางการ
หมายเลขซีเรียลดิสก์เรียกว่า ID ดิสก์เป็นข้อมูลการระบุดิสก์ที่สร้างขึ้นเมื่อมีการจัดรูปแบบดิสก์ สองรูปแบบของเครื่องเดียวกันเพื่อสร้างหมายเลขซีเรียลรูปแบบคงที่เกือบจะเป็นศูนย์ สลับจาก Windows9.x เป็น MS-DOS และพิมพ์คำสั่ง DIR เพื่อส่งคืนข้อมูลลำดับการเลื่อนปัจจุบันจะปรากฏขึ้นบนหน้าจอ ซอฟต์แวร์บางตัวที่ใช้เป็นระยะเวลาหนึ่งจะต้องสมัครสำหรับหมายเลขซีเรียลที่ได้รับอนุญาตใหม่ (โดยใช้ใบอนุญาต) ออนไลน์หลังจากระยะเวลาการใช้งานพร้อมใช้งาน ส่วนที่สำคัญของหมายเลขลำดับที่ได้รับอนุญาตนี้ใช้เวลาในการเชื่อมโยงหมายเลขลำดับดิสก์แบบคงที่ หลังจากการติดตั้งโปรแกรมไม่สามารถใช้งานได้แม้ว่าโปรแกรมจะถูกคัดลอกอย่างผิดกฎหมายในสภาพแวดล้อมการติดตั้งที่ไม่ใช่อินโนริเทียล
ความคิดที่กล่าวมาข้างต้นนั้นง่ายต่อการเขียนโปรแกรมของ VC, VB และ Deliphi VBScript เป็นภาษาผู้ใช้ที่แข็งแกร่งและปลอดภัยถูก จำกัด โดยระบบไคลเอนต์ ดังนั้นบทความนี้ใช้ VBScript และรวม ASP Built -In Component Filesystem เพื่อให้ได้แนวคิดข้างต้น ขั้นตอนต่อไปนี้ได้รับการแก้ไขเล็กน้อยตามสถานการณ์เฉพาะซึ่งสามารถนำไปใช้กับระบบแอปพลิเคชัน ASP ที่เกิดขึ้นจริง
เป็นตัวอย่างของคำอธิบายบทความนี้ใช้กลไกการรักษาความปลอดภัยฐานข้อมูลการเข้าถึง เพื่ออำนวยความสะดวกในการทำอย่างละเอียดก่อนอื่นเราสร้างฐานข้อมูลการเข้าถึง ID.MDB (รหัสผ่าน "KXJ") และสร้างตาราง DriveInfo ภายใน
ID (หมายเลขอัตโนมัติ);
Serno (ข้อความ, 12, หมายเลขซีเรียลดิสก์ (10 -in));
Wrimark (หมายเลข, 1, โลโก้การเขียน)
อธิบาย
ค่า Wrimark คือ 0 หมายความว่าผู้ใช้ตามกฎหมายไม่ได้ติดตั้งระบบและค่าคือ 1 แสดงถึงการติดตั้งระบบ เมื่อค่าคือ 1 และหมายเลขซีเรียลไม่ตรงกับดิสก์ปัจจุบันจะถูกกำหนดให้เป็นผู้ใช้การคัดลอกที่ผิดกฎหมาย
เมื่อเริ่มต้นให้กำหนดระเบียนใหม่ค่าเริ่มต้นของแต่ละฟิลด์คือ 1,12345678,0 ตามลำดับ
ในไดเรกทอรีเดียวกันตัวอย่างเช่นภายใต้ C:/interpub/wwwroot ให้วางหน้าแรกเริ่มต้นหน้าเว็บ, ความสำเร็จของผู้ใช้ตามกฎหมาย, ความสำเร็จของผู้ใช้ตามกฎหมาย, หน้าไลบรารีการติดตั้งหมายเลขผู้ใช้การติดตั้งที่ผิดกฎหมาย
การดำเนินการเขียนของแต่ละไฟล์ ASP มีดังนี้:
1. ใช้ FrontPage (หรือ NotePad) เพื่อสร้างไฟล์ 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")
ตั้งค่า fs = server.createObject ("scripting.filesystemobject")
testDrive = Server.Mappath ("/driveinfo.asp")))))))))))))))
'' รับการก่อตัวของดิสก์ปัจจุบันด้วย mappath
TestDrive = ซ้าย (TestDrive, 3)
ตั้งค่า f = fs.getDrive (TestDrive)
'' เรียกวิธี getDrive และให้ตัวแปรไดรฟ์
mysql = "เลือก * จาก driveinfo โดยที่ 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
เซสชัน ("pass") = true
'' กำหนดเซสชันผู้ใช้และวางเป็นตัวแปรการระบุเอกสาร ASP ทั่วโลก
ตั้งค่า rsmain = server.createObject ("adodb.recordset"))
mysql1 = "อัปเดต driveinfo serno =" & fser & ", wrimark = 1"
rsmain.open mysql1, Conn, 1,2
Response.write ("<" <"<"
ประสบความสำเร็จ!
ตั้งค่า rsmain = ไม่มีอะไร
อื่น
ถ้า strserno = fser แล้ว
'' หากผู้ใช้ตามกฎหมายเข้ามาอีกครั้ง
เซสชัน ("pass") = true
Response.write ("<" << href = '' success.asp ''> คุณได้รับอนุญาตจากผู้จัดการเว็บไซต์ยินดีต้อนรับที่จะยอมรับ! <// a> ")
อื่น
'' ผู้ใช้สำเนาที่ผิดกฎหมาย
เซสชัน ("pass") = false
Response.write ("<" <"<" <"<" <", 'fail.htm' '> มันผิดกฎหมายในการคัดลอกเอกสาร ASP ของเว็บไซต์คุณไม่ได้ใช้โปรแกรม
สิ้นสุดถ้า
สิ้นสุดถ้า
Response.write ("<br>")
Response.write ("หมายเลขซีเรียลระดับเสียงในไดรฟ์" และ TestDrive)
Response.write (F.SerialNumber)