ASP (Active Server Pages)의 출현 이후, 보수가 쉬우 며 플랫폼이 중요하지 않은 강력한 애플리케이션 시스템을 만들 수 있기 때문에 ASP 기술은 점점 더 많은 네트워크 프로그래머에 의해 사랑을 받았습니다. 그러나 ASP는 단지 비합화 유형이며, 서버 측면에서 실행되는 스크립트 언어입니다.
SP 응용 프로그램은 불법적으로 복사되지 않습니다. 고가 관리자의 경우 ASP 프로그램을 서버에서 다른 무단 웹 사이트로 쉽게 복사 할 수 있습니다. 이로 인해 ASP 응용 프로그램의 상용화에 어려움이 있습니다. 디스크 일련 번호에 의해 생성 된 무작위성을 기반으로 개발 된 ASP 프로그램을 효과적으로 보호하는 방법은 Microsoft가 제공 한 공식 ASP 스크립트 암호화 프로그램 SCREANC.EXE와 결합하여 공식적 으로이 문제를 해결했습니다.
디스크 ID라고하는 디스크 일련 번호는 디스크가 형식화 될 때 생성 된 디스크 식별 정보입니다. 고정 된 형식의 일련 번호를 무작위로 생성하기위한 동일한 기계의 두 형식은 이후 버전의 DOS 및 Winnt를 사용합니다. wind 사용 기간을 사용할 수있는 후 온라인으로 새로운 공인 일련 번호 (허가 사용)를 신청 해야하는 일부 소프트웨어가 필요합니다. 이 승인 된 시퀀스 번호의 상당 부분은 정적 디스크 시퀀스 번호 바인딩 시간을 사용합니다. 설치 후 프로그램을 불법 설치 환경에 불법적으로 복사하더라도 프로그램을 사용할 수 없습니다.
위의 언급 된 생각은 VC, VB 및 Deliphi의 프로그래밍 언어에서 쉽게 달성 할 수 있습니다. 강력하고 안전한 사용자 언어로서 VBScript는 클라이언트에서 API의 통화를 처리 할 수 없으며 클라이언트의 파일 및 파일 시스템 외부에서 직접 조작 할 수 없습니다. 따라서이 기사는 vbscript를 사용하고 ASP Build -In Component FileSystem을 결합하여 위의 아이디어를 달성합니다. 다음 절차는 특정 상황에 따라 약간 수정되며 실제 ASP 응용 프로그램 시스템에 적용될 수 있습니다.
설명의 예를 들어,이 기사는 액세스 데이터베이스 보안 메커니즘을 사용하여 다른 형식으로 저장된 데이터를 사용할 수 있습니다. 정교화를 촉진하기 위해 먼저 액세스 데이터베이스 ID.mdb (Password "KXJ")를 구축하고 DriveInfo 테이블 내부를 구축합니다.
ID (자동 번호);
SERNO (텍스트, 12, 디스크 일련 번호 (10 -in));
Wrimark (번호, 1, 쓰기 로고).
설명
Wrimark 값은 0이라는 것은 법적 사용자가 시스템을 설치하지 않았으며 값은 시스템 설치를 나타내는 1입니다. 값이 1이고 일련 번호가 현재 디스크와 일치하지 않으면 불법 복사 사용자로 결정됩니다.
초기화가 먼저 새 레코드를 정의하면 각 필드의 초기 값은 각각 1,12345678,0입니다.
예를 들어 C :/Interpub/WWWroot에 따라 동일한 디렉토리에서 홈페이지 Default.asp, 법적 사용자 홈페이지 성공 .ASP, 불법 설치 사용자 프롬프트 페이지 실패 및 ID.MDB 일련 번호 저장 라이브러리를 배치하십시오.
각 ASP 파일의 쓰기 작업은 다음과 같습니다.
1. FrontPage (또는 메모장)를 사용하여 새 ASP 파일 기본값을 작성하고 다음 프로그램 코드를 입력하십시오.
<html>
<헤드>
<title> 샘플 </title>
</head>
<% dim 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")))
``Mappath로 현재 디스크 형성을 얻으십시오
testdrive = 왼쪽 (testdrive, 3)
set 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 문서 식별 변수로 배치하십시오.
set rsmain = server.createobject ( "adodb.recordset")
mysql1 = "driveinfo serno ="& fser & ", wrimark = 1"
RSMAIN.OCEN MYSQL1, CONN, 1,2
response.write ( "<"< "<"
성공적인 웹 사이트에 오신 것을 환영합니다! <// a> "))
rsmain = 아무것도 설정하지 않습니다
또 다른
strserno = fser라면
``합법적 인 사용자가 다시 들어가면
세션 ( "Pass") = true
response.write ( "<"<< href = ''success.asp ''> 웹 사이트 관리자가 승인하시면 수락 할 것을 환영합니다! <// a> ")
또 다른
''불법 사본 사용자
세션 ( "Pass") = False
response.write ( "<"< "<"< "<"< "<"< "<"< "<"< "<"< "<j
끝 If
끝 If
response.write ( "<br>")
response.write ( "Drive의 볼륨 일련 번호"및 TestDrive)
Response.write (F.SerialNumber)