Recomendado: Explicação detalhada do objeto FileSystemObject de ASP A unidade especificada existe? Este exemplo demonstra como usar o método drivexists para detectar se existe uma unidade. O código é o seguinte: html body % setfs = server.createObject (scripting.filesystemobject) ifffs.DriveExists (c :) = truethen Response.write (unidade c: existe.
Depois que o banco de dados está desligado, muitas pessoas não sabem como lidar com ele, ou o processamento é incompleto, resultando em trojans ainda aparecendo após a abertura da página da web. Este artigo apresenta uma solução melhor para sua referência.Etapa 1 : faça backups para bancos de dados existentes.
Etapa 2 : Execute o seguinte arquivo ASP para remover os JS Trojans no banco de dados. (Nota: Conn.asp é omitido)
| 'Coloque o conteúdo do JS Trojan aqui: Lembre -se de alterá -lo para o conteúdo do JS Trojan em seu próprio banco de dados. <!-#incluirfile = Conn.asp-> <% Server.scriptTimeout = 180 Setrstschema = Conn.openschema (20) k = 1 Dountilrstschema.eof 'Tabelas de banco de dados de transferência Ifrstschema (tabela_type) = tablethen Response.Writek &. Setrs = server.createObject (adodb.recordset) sql = selecione*de [& rstschema (table_name) &] Rs.opensql, Conn, 1,3 Fori = 0tors.fields.count-1 'viaje os campos na tabela Ifint (rs (i) .Type) = 129orint (rs (i) .Type) = 130orint (rs (i) .Type) = 200orint (rs (i) .Type) = 201TINT (rs (i) .Type) = 201orint (Rs). Conn.Execute (Update [& rstschema (tabela_name) &] Set & rs (i) .Name & = Substituir (Cast (& rs (i) .Name & Asvarchar (8000)), 'Coloque o conteúdo do JS Trojan aqui' '')))) Response.Writers (i) .Name && RS (i) .Type & 'Mostre o nome do campo executado. Endif Próximo Response.write <br> Endif rstschema.movenext k = k+1 Laço Response.Write Execution com sucesso %> |
Se houver muitas tabelas de banco de dados, a estrutura do banco de dados Traversal acima será interrompida pelo IIS antes de ser executada. Neste momento, você pode
| Se rstschema (tabela_type) = tabela então |
O intervalo de valores K é adicionado adequadamente, como:
| Ifrstschema (tabela_type) = tabelak> 10andk <20then |
Dessa forma, apenas 9 tabelas são operadas por vez.
Etapa 3 :
De acordo com as características da injeção de JS do banco de dados (que incluirá caracteres como <script, </script> e http: //),
Coloque o seguinte código em Conn.asp:
| FunctionCheAck_sqljs () 'Evita o link externo do banco de dados JS injeção: true é descobrir a injeção externa do link JS. Dimf_post, f_get Check_sqljs = false Ifrequest.form <> então 'Detecção no envio do formulário Foreachf_postinRequest.form If (Instr (lcase (request.form (f_post)), <script) <> 0orinstr (lcase (request.form (f_post)), </script>) <> 0) andInStr (lcase (request.form (f_post)), http: //) <> 0then Check_sqljs = true Exitfor Endif Próximo Endif IfRequest.QueryString <> então 'Detecção no envio do Querystring Foreachf_getinRequest.QueryString If (Instr (lcase (request.form (f_get)), <script) <> 0orinstr (lcase (request.form (f_get)), </script>) <> 0) andinstr (lcase (request.form (f_get)), http: //) <> 0then Check_sqljs = true Exitfor Endif Próximo Endif Função final FunctionCheckDataFrom () 'Verifique se a fonte enviada de dados: true é enviada de fora do site CheckDataFrom = true server_v1 = cstr (request.Servervariables (http_referer)) server_v2 = cstr (request.Servervariables (server_name)) ifmid (server_v1,8, len (server_v2)) <> server_v2then CheckDataFrom = false endif Função final Ifcheack_sqljsorCheckDataFromthen Response.write <scriptLanguage = javascript> alert ('Execução é proibida, operação ilegal.'); </sCript> Response.end () Endif |
Compartilhar: Tutorial para interpretar a sub -rotina de chamada ASP Os programas ASP podem chamar sub -rotinas por meio do VBScript e de outras maneiras. Ligue para uma sub -rotina usando vbscript, código de exemplo: html head %subvbproc (num1, num2) resposta.write (num1*num2) Endsub % /cabeça do corpo P Você pode chamar um programa como este: /pp resultado: %callvbproc (3,4) % /pp ou assim