Desde o advento do ASP (Páginas do Servidor Ativo), porque pode criar um forte sistema de aplicativos que é fácil de manter e não importa a plataforma, a tecnologia ASP foi amada por mais e mais programadores de rede. No entanto, o ASP é apenas um tipo de compilação, um idioma de script em execução no lado do servidor.
As aplicações de SP não são copiadas ilegalmente. Para administradores de alta autoridade, você pode copiar facilmente o programa ASP do servidor para outros sites não autorizados. Isso traz algumas dificuldades na comercialização de aplicativos ASP. Como proteger efetivamente os programas desenvolvidos ASP, com base na aleatoriedade gerada pelo número de série do disco, combinado com o programa oficial de criptografia de scripts ASP ScreanC.exe fornecido pela Microsoft resolveu oficialmente esse problema.
Número de série do disco, referido como ID do disco, é uma informação de identificação de disco gerada quando o disco é formatado. Dois formatos da mesma máquina para gerar aleatoriamente um número de série de formato fixo são quase zero. Alterne do Windows9.x para MS-DOS e digite o comando DIR para retornar. Algum software usado por um período de tempo deverá solicitar um novo número de série autorizado (usando permissão) on -line após o período de uso estar disponível. Uma parte considerável desse número de sequência autorizado usa um tempo de ligação ao número da sequência de disco estático. Após a instalação, o programa não pode ser usado, mesmo que o programa seja copiado ilegalmente no ambiente de instalação não -iniciais.
Os pensamentos mencionados acima são fáceis de alcançar na linguagem de programação de VC, VB e Deliphi. O VBScript, como um idioma de usuário forte e seguro, é limitado pelo sistema do cliente. Portanto, este artigo usa o VBScript e combina o sistema de arquivos de componentes construídos ASP para obter as idéias acima. Os procedimentos a seguir são ligeiramente modificados de acordo com a situação específica, que pode ser aplicada ao sistema de aplicação ASP real.
Como exemplo de explicação, este artigo usa o mecanismo de segurança do banco de dados de acesso. Para facilitar a elaboração, primeiro criamos um banco de dados de acesso ID.MDB (senha "KXJ") e criamos uma tabela DriveInfo interna.
Id (número automático);
Serno (texto, 12, número de série do disco (10 -in));
Wrimark (número, 1, logotipo de escrita).
ilustrar
O valor Wrimark é 0 significa que o usuário jurídico não instalou o sistema e o valor é 1 representando a instalação do sistema. Quando o valor é 1 e o número de série não corresponde ao disco atual, ele é determinado a ser uma cópia ilegal de usuários.
Ao inicializar, primeiro defina um novo registro, o valor inicial de cada campo é de 1.12345678,0, respectivamente.
No mesmo diretório, por exemplo, em c:/interpub/wwwroot, coloque a página inicial padrão.asp, a página inicial da página inicial do usuário .sasp, a página prompt de instalação ilegal Fail.htm e o ID.MDB Serial Number Storage Library.
A operação de escrita de cada arquivo ASP é a seguinte:
1. Use o Frontpage (ou no bloco de notas) para criar um novo arquivo ASP Default.asp e insira o seguinte código do programa:
<html>
<head>
<title> amostra </title>
</head>
<% Dim Conn, fs, f
Definir Conn = Server.CreateObject ("Adodb.Connection")
Conn.open "driver = {Microsoft Access Driver (*.mdb)}; uid =; pwd = kxj; dbq =" & server.mappath ("id.mdb")
Definir fs = server.createObject ("scripting.filesystemobject")
testdrive = server.mappath ("/driveInfo.asp")))
'' Obtenha a formação de disco atual com o MAPPATH
testDrive = esquerda (TestDrive, 3)
set f = fs.getDrive (testDrive)
'' Ligue para o método getDrive e dê à unidade uma variável
Mysql = "Selecione * de driveInfo onde id = 1"
Definir rscheck = server.createObject
rscheck.open mysql, conn, 1,1
Fser = Trim (F.SerialNumber)
'' Obtenha o número de série do disco atual
Strserno = Trim (rscheck.fields ("Serno"))
Strmark = rscheck.fields ("" wrimark ")
Se Strserno <> fser e strmark = 0 então
'' Se for instalado pela primeira vez, o logotipo da escrita é 1
sessão ("passa") = true
'' Defina a sessão do usuário e a colocou como uma variável de identificação de documentos ASP global
set rsmain = server.createObject ("adodb.recordset")
Mysql1 = "update driveInfo serno =" & fser & ", wrimark = 1"
rsmain.open mysql1, conn, 1,2
Response.Write ("<" <"<"
Bem -sucedido! Bem -vindo para acessar o site!
Definir rsmain = nada
outro
Se StrSerno = fser então
'' Se o usuário jurídico entrar novamente
sessão ("passa") = true
Response.Write ("<" << href = '' success.asp ''> Você está autorizado pelo gerente do site, recebe aceitar! <// a> ")
outro
'' Usuário de cópia ilegal
sessão ("passa") = false
Response.Write ("<" <"<" <"<" <", 'Fail.htm' '> é ilegal copiar o documento ASP do site', você não está rigrt para usar o programa.
final se
final se
Response.Write ("<br>")
Response.Write ("Número de série do volume na unidade" e testdrive)
Response.Write (F.SerialNumber)