Karena munculnya ASP (halaman server aktif), karena dapat membuat sistem aplikasi yang kuat yang mudah dipelihara dan tidak masalah platform, teknologi ASP telah dicintai oleh semakin banyak pemrogram jaringan. Namun, ASP hanyalah tipe non -kompilasi, bahasa skrip yang berjalan di sisi server.
Aplikasi SP tidak disalin secara ilegal. Untuk administrator otoritas tinggi, Anda dapat dengan mudah menyalin program ASP dari server ke situs web lain yang tidak sah. Ini membawa beberapa kesulitan dalam komersialisasi aplikasi ASP. Cara melindungi program ASP yang dikembangkan secara efektif, berdasarkan keacakan yang dihasilkan oleh nomor seri disk, dikombinasikan dengan program enkripsi skrip ASP resmi SCREANC.exe yang disediakan oleh Microsoft secara resmi menyelesaikan masalah ini.
Nomor Seri Disk, yang disebut sebagai Disk ID, adalah informasi identifikasi disk yang dihasilkan ketika disk diformat. Dua format dari mesin yang sama untuk secara acak menghasilkan nomor seri format tetap hampir nol. Beralih dari Windows9.x ke MS-DOS, dan ketik perintah DIR untuk kembali. Beberapa perangkat lunak yang digunakan untuk jangka waktu tertentu akan diminta untuk mengajukan permohonan nomor seri resmi baru (menggunakan izin) secara online setelah periode penggunaan tersedia. Bagian yang cukup besar dari nomor urutan resmi ini menggunakan waktu pengikatan angka urutan disk statis. Setelah instalasi, program tidak dapat digunakan bahkan jika program disalin secara ilegal ke lingkungan instalasi non -initial.
Pikiran yang disebutkan di atas mudah dicapai dalam bahasa pemrograman VC, VB, dan Deliphi. VBScript, sebagai bahasa pengguna yang kuat dan aman, dibatasi oleh sistem klien. Ia tidak dapat menangani panggilan API pada klien, juga tidak dapat memanipulasi kontrol secara langsung di luar file dan sistem file klien. Oleh karena itu, artikel ini menggunakan vbscript dan menggabungkan sistem file komponen ASP built -in untuk mencapai ide -ide di atas. Prosedur berikut sedikit dimodifikasi sesuai dengan situasi tertentu, yang dapat diterapkan pada sistem aplikasi ASP yang sebenarnya.
Sebagai contoh penjelasan, artikel ini menggunakan mekanisme keamanan basis data akses. Untuk memfasilitasi elaborasi, pertama -tama kami membangun database akses ID.MDB (kata sandi "KXJ"), dan membangun tabel driveInfo internal.
ID (nomor otomatis);
Serno (teks, 12, nomor seri disk (10 -in));
Wrimark (Nomor, 1, Logo Penulisan).
menjelaskan
Nilai Wrimark adalah 0 berarti bahwa pengguna hukum belum menginstal sistem, dan nilainya 1 mewakili pemasangan sistem. Ketika nilainya 1 dan nomor seri tidak cocok dengan disk saat ini, itu ditentukan untuk menjadi pengguna salinan ilegal.
Ketika inisialisasi, pertama -tama tentukan catatan baru, nilai awal masing -masing bidang adalah 1.12345678,0.
Dalam direktori yang sama, misalnya, di bawah C:/Interpub/WWWroot, tempatkan homepage default.asp, legal user homepage success.asp, instalasi ilegal halaman prompt pengguna fail.htm dan id.mdb perpustakaan penyimpanan nomor seri.
Operasi penulisan setiap file ASP adalah sebagai berikut:
1. Gunakan FrontPage (atau Notepad) untuk membuat file ASP baru default.asp dan masukkan kode program berikut:
<Html>
<head>
<Title> sampel </iteme>
</head>
<% Redup conn, fs, f
Set 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"))
'' Dapatkan Formasi Disk saat ini dengan Mappath
testdrive = kiri (testdrive, 3)
set f = fs.getDrive (testdrive)
'' Panggil metode getDrive dan berikan drive variabel
Mysql = "pilih * dari driveInfo di mana id = 1"
atur rscheck = server.createObject
rscheck.open mysql, conn, 1,1
Fser = trim (f.serialnumber)
'' Dapatkan nomor seri disk saat ini
Strserno = trim (rscheck.fields ("serno"))
Strmark = rscheck.fields ("" wrimark ")
Jika strserno <> fser dan strmark = 0 lalu
'' Jika diinstal untuk pertama kalinya, logo penulisan adalah 1
sesi ("pass") = true
'' Tentukan sesi pengguna dan menempatkannya sebagai variabel identifikasi dokumen ASP global
Setel rsmain = server.CreateObject ("adodb.recordset")
Mysql1 = "Perbarui driveInfo serno =" & fser & ", wrimark = 1"
rsmain.open mysql1, conn, 1,2
response.write ("<" <"<" <"
Sukses!
atur rsmain = tidak ada
kalau tidak
Jika strserno = fser maka
'' Jika pengguna hukum masuk lagi
sesi ("pass") = true
Response.write ("<" << href = '' Success.asp ''> Anda diizinkan oleh manajer situs web, menyambut untuk menerima! <// a>))
kalau tidak
'' Pengguna Salinan Ilegal
sesi ("pass") = false
Response.write ("<" <"" <"<" <"<" <", 'fail.htm' '> Adalah ilegal untuk menyalin dokumen ASP situs web. Anda tidak akan menggunakan program ini.
akhiri jika
akhiri jika
response.write ("<br>")
Response.write ("Nomor Seri Volume di Drive" & TestDrive)
response.write (f.serialnumber)