Recommandé: Explication détaillée de l'objet FilesystemObject d'ASP Le lecteur spécifié existe-t-il? Cet exemple montre comment utiliser la méthode DriveExists pour détecter si un lecteur existe. Le code est le suivant: Html Body% setfs = server.createObject (scripting.fileSystemObject) ifffs.driveExists (c :) = trueThen Response.write (lecteur c: exists.) Else Response.Wr
Une fois la base de données raccrochée, de nombreuses personnes ne savent pas comment y faire face, ou le traitement est incomplet, ce qui entraîne des chevaux de Troie qui apparaissent toujours après l'ouverture de la page Web. Cet article présente une meilleure solution pour votre référence.Étape 1 : Faites des sauvegardes pour les bases de données existantes.
Étape 2 : Exécutez le fichier ASP suivant pour supprimer les chevaux de chevaux JS dans la base de données. (Remarque: Conn.asp est omis)
| «Mettez le contenu JS Trojan ici: n'oubliez pas de le changer en contenu JS Trojan dans votre propre base de données. <! - # includeFile = Conn.asp -> <% Server.scriptTimeout = 180 SetrstSchema = conn.openschema (20) k = 1 DoulRrstSchema.eof 'Transférer des tables de base de données IfrstSchema (table_type) = TableThen réponse.writek &. <fontcolor = red> <b> & rstSchema (table_name) & </b> </font>: 'Afficher le nom de la table Setrs = server.createObject (adodb.recordSet) sql = select * from [& rstSchema (table_name) &] Rs.OpenSQL, Conn, 1,3 Fori = 0tors.fields.count-1 'parcourez les champs du tableau Ifint (rs (i) .ype) = 129orint (rs (i) .ype) = 130orint (rs (i) .type) = 200ORINT (RS (i) .Type) = 201Orint (rs (i) .type) = 202orint (RS (i) .ype) = 203Then 'seulement Conn.Execute (Update [& rstSchema (table_name) &] set & rs (i) .name & = remphal Response.Writers (i) .name && rs (i) .type & 'afficher le nom de champ exécuté. Endire Suivant réponse.WRITE <br> Endire RSTSCHEMA.MOVENEXT k = k + 1 Boucle Réponse. Écrivez l'exécution avec succès %> |
S'il existe de nombreuses tables de base de données, la structure de base de données de traversée ci-dessus sera arrêtée par IIS avant son exécution. Pour le moment, vous pouvez
| Si rstSchema (table_type) = table alors |
La plage de valeurs k est ajoutée de manière appropriée, telle que:
| IfrstSchema (table_type) = tablek> 10andk <20Then |
De cette façon, seules 9 tables sont exploitées à la fois.
Étape 3 :
Selon les caractéristiques de l'injection JS de la base de données (qui comprendra des caractères tels que <script, </cript> et http: //),
Mettez le code suivant dans Conn.asp:
| FunctionCheaCK_SQLJS () 'Empêche la base de données Lien externe JS Injection: Vrai est de découvrir l'injection JS de liaison externe. Dimf_post, f_get Check_sqljs = false Ifrequest.form <> puis 'détection sur la soumission du formulaire Foreachf_postinRequest.form If (instr (lCase (request.form (f_post)), <script) <> 0orinstr (lCase (request.form (f_post)), </cript>) <> 0) andinstr (lcase (request.form (f_post)), http: //) <> 0Then Check_sqljs = true Sortie Endire Suivant Endire IfRequest.Querystring <> puis 'Détection sur la soumission de la question Foreachf_getInRequest.Querystring If (instr (lCase (request.form (f_get)), <script) <> 0orinstr (lCase (request.form (f_get)), </cript>) <> 0) etIntr (lcase (request.form (f_get)), http: //) <> 0ThenThen Check_sqljs = true Sortie Endire Suivant Endire Finition de fin FonctionCHECKDATAFROM () 'Vérifiez les données Source soumise: Vrai est soumis à partir de l'extérieur du 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 endire Finition de fin IFCHEACK_SQLJSORCHECKDATAFROMTHEN Response.Write <ScriptLanguage = JavaScript> alert ('L'exécution est interdite, opération illégale.'); </cript> Réponse.end () Endire |
Partager: Tutoriel pour interpréter le sous-programme ASP Call Les programmes ASP peuvent appeler les sous-programmes via VBScript et d'autres façons. Appelez un sous-programme à l'aide de VBScript, exemple de code: html head% subvbproc (num1, num2) réponse.Write (num1 * num2) ENDSUB% / head body p Vous pouvez appeler un programme comme ceci: / pp résultat:% callvbproc (3,4)% / pp ou, comme celui-ci: / pp résultat: résultat