Sécurité: les stratégies de prévention, il l'aide de scripts d'attaque



Vulnérabilités d'Injection SQL sur le réseau à l'aide d'attaque, script JS, HTML scripting attaques semblent jouer sur plus forte. L'un après l'autre des nombreux sites sont en proie à de telles attaques, n'aimait pas les vulnérabilités d'accueil peut être réparé immédiatement, l'attaque du Web afin que nous dans la prévention ou de réparation qui apporte son lot de désagréments. Un webmaster est le plus douloureux de cette. Quelle est la force de votre mot de passe pour l'attaquant a toujours été disponible, mais comment pouvons-nous assurer la sécurité réelle? Tout d'abord, ne pas mot de passe et un lien entre votre vie, d'autre part, le PWD Supermaster que tu connais le mieux , le troisième, absolument nécessaire pour améliorer votre site Web du Programme. Mais comment pouvons-nous améliorer, ce sera notre objectif ultime de cet article.

De sécurité, comment faire de la sécurité? Voulez protection est nécessaire de savoir comment attaquer les uns les autres. De nombreux articles ont été rédigés pour capturer un site particulier, en fait, la manière de leurs attaques, mais également ce qui suit:

Simple script 1. attaque

De telles attaques doivent difficultés, c'est ennuyeux. Par exemple ****: alert (), de même, en raison d'un filtre n'est pas proche de ce que l'attaquant non seulement disponibles, mais il ne peut être perturbateur à l'objet. De nombreux sites présent service gratuit, ou le programme sur leur propre site n'est pas strictement un problème de filtration.

2. Dangereuses attaques de script

Ces attaques ont été plus à l'écriture peut voler l'administrateur ou d'autres communications d'information des usagers à tous les niveaux. Par exemple, nous le savons tous, voler les cookies, utilisez le script sur le client local écrire plus.

3. Sql exploits d'injection

On peut dire que cette attaque est de partir d'Dongwangluntan et BBSXP. Filtrage avec SQL caractères spéciaux ne sont pas étanches, et les attaques requête bases de données croisées. Par exemple:

http://127.0.0.1/forum/showuser.asp?id=999 et 1 = 1

http://127.0.0.1/forum/showuser.asp?id=999 et 1 = 2

http://127.0.0.1/forum/showuser.asp?id=999 et 0 (SELECT COUNT (*) à partir de admin)

http://127.0.0.1/forum/showuser.asp?id=999; declare @ @ un ensemble sysname a + = 'xp_'

«Cmdshell 'exec @ un« dir c :'---& aides = 9

Obtenez le mot de passe administrateur a des moyens de commande toute la station n'a pas besoin d'être l'hôte des privilèges, mais aussi pour cette étape pour faire beaucoup de préfiguration. SQL Injection attaques similaires aux méthodes et moyens de nombreux filtres de fichiers différents ne sont pas prises pour fermer la requête de différentes manières. Donc, pour faire un filtre caractère complet où les procédures ne sont pas l'effort de venir est impossible.

Attaques par injection 4. Distance

Un site de la soi-disant de filtrage ne soumettre une page de formulaire simple JS filtrage. Pour l'utilisateur moyen, vous n'avez pas besoin de prévenir, de l'attaque préméditée sont concernés, ne semblent pas être un effet de filtrage. On dit souvent que l'attaque POST est un exemple. Soumis par les attaques à distance des informations illicites, afin d'atteindre l'objectif.

Grâce à la description ci-dessus des méthodes d'attaque, nous avons généralement comprendre la façon dont les attaquants, la description qui suit nous nous concentrons sur le départ, la façon de prévenir efficacement les attaques de script!

Nous commençons donc des plus simples:

Contre les attaques de script

scripts JS et HTML protection contre les attaques de script est très simple: Server.HTMLEncode (Str) bin. Bien sûr, vous ne pleurez pas, comment pourrait-il être? Vous me permettant de la gare, je n'aime pas tous les ajouter au filtre épuisé? Afin de faciliter le filtrage, nous avons seulement besoin de scripts HTML et des scripts JS à filtrer certains personnages clés peuvent être : le corps de la procédure (1) comme suit:

«Ce qui suit est une fonction de filtrage

«Les éléments suivants sont des exemples d'application

Nom d'utilisateur = CHK (remplacer (à la demande (""),"'","")) nom d'utilisateur

Inclure la fonction écrite en utilisant la page publique, donc l'efficacité est le meilleur.

corps de la procédure (1)

En outre, il est digne de notre attention est que les utilisateurs du site de nombreux pour vous inscrire, ou modifier la page d'informations utilisateur est également un manque de script de filtrage, ou dans un seul filtre, de modifier les informations enregistrées dans le post-scriptum peut encore attaquer. Les données soumises par un utilisateur pour détecter et filtrer, le corps du programme (2) comme suit:

«Ce qui suit est une fonction de filtrage

If InStr (request ("nom d'utilisateur "),"=") 0 ou

Instr (request ("nom d'utilisateur "),"%") 0 ou

Instr (demande ("username"), Chr (32)) 0 ou

Instr (request ("nom d'utilisateur "),"?") 0 ou

Instr (request ("nom d'utilisateur "),"&") 0 ou

Instr (request ("nom d'utilisateur "),";") 0 ou

Instr (request ("nom d'utilisateur "),",") 0 ou

Instr (request ("nom d'utilisateur "),"'") 0 ou

Instr (request ("nom d'utilisateur "),"?") 0 ou

Instr (demande ("username"), Chr (34)) 0 ou

Instr (demande ("username"), Chr (9)) 0 ou

Instr (demande ("username"), "") 0 ou

Instr (request ("nom d'utilisateur "),"$") 0 ou

Instr (request ("nom d'utilisateur ")," ") 0 ou

Instr (request ("nom d'utilisateur ")," ") 0 ou

Instr (request ("nom d'utilisateur "),"""") 0 alors

Response.Write "ami, à soumettre votre nom d'utilisateur contient des caractères non, le changement, merci de revenir"

Response.End

End If

corps de la procédure (2)

Afin d'assurer l'efficacité que nous cherchons à filtrer davantage le contenu des procédures, pour l'efficacité de filtration des différents paramètres sera largement augmenté: comme le corps du programme (3)

«À la suite du programme principal

Bword DIM (18)

Bword (0 )="?"

Bword (1 )=";"

Bword (2 )=" "

Bword (3 )=" "

Bword (4 )="-"

Bword (5 )="'"

Bword (6 )=""""

Bword (7 )="&"

Bword (8 )="%"

Bword (9 )="$"

Bword (10 )="'"

Bword (11 )=":"

Bword (12 )="|"

Bword (13 )="("

Bword (14 )=")"

Bword (15 )="--"

Bword (16) = "chr (9)»

Bword (17) = "chr (34)"

Bword (18) = "chr (32)"

CEDR = false

«Les éléments suivants sont des exemples de certaines applications

pour i = 0 à UBound (Bword)

If InStr (FQYs, Bword (i)) 0 Then

CEDR = true

End If

prochain

si ERRC puis

response.write "

Response.End

End If

corps de la procédure (3)

Avec la fonction de filtre ci-dessus que vous pouvez placer dans l'application de toute nécessité de filtrer fonction de filtrage directement sur elle. Cela nous amène à la restauration de travail considérablement simplifié.

En outre, plus que je tiens à rappeler une fois de plus, un petit nombre de sites au cours de l'expression de l'icône UBB apparaît lorsque la question de transformation de filtre, car il était caché n'est pas facile à trouver:

Tels que:

Nous modifions le texte des étiquettes,

Je ne savais pas que vous comprenez, avant un guillemet simple et procédures prévues dans le guillemet gauche, entre guillemets simples utilisés dans les deuxième et fermé le guillemet droit, de sorte que le processus de sortie:

Si l'image n'existe pas, alors la balise script pour activer la mise en œuvre onerror. Pour les guillemets simples ont été filtrage des sites, comme ici, avec des guillemets doubles. **** Pour le champ filtré, et seulement alert () peut aussi. Nous devons donc filtre pour filtrer complètement, ne donnent pas l'attaquant la possibilité de laisser une trace.

Prévenir SQL Injection exploits

Il peut être dit ici semble être l'objet de l'article en entier. Vulnérabilité d'Injection SQL sur le processus de diversification qui nous devons penser davantage de protection sur un certain nombre. Injection SQL dans le visage d'une forte «offensives», ce que nous à la fin du filtre?

Le risque de certains caractères couramment utilisés ont

Champs de la base «distinguer fermée

- Mark quelques-unes des bases de données d'annotation

# Quelques-uns des signes de base de données d'annotation

»Peut conduire à l'erreur,

répertoire de la Croix-

caractère 3221143836nicode fonctions de codage

$ Peut être utilisée pour l'étiquette variable

/ Et la même chose

NULL attention "vide" dans le risque de traitement peut conduire à la base de données ou erreur système, dépassement de structure de l'utilisation d'erreur.

Les espaces et les «Ensemble, construire injeciton SQL

= & Si le second paramètre peut être réécrite querystr.

(1) du plus général. Exploits d'injection SQL de vue: nom d'utilisateur et mot de passe sur les problèmes de filtrage, tels que:

Soumis mot de passe utilisateur: nom d'utilisateur: 'ou''=': 'ou''='

A partir de ce processus, nous pouvons arriver à la base de données suivantes

Sql = "SELECT conf bin sauvegarde des données de configuration generate.sh eshow_sitemap.html journal maint sitemap.html LUSERS svn tmp From Where nom d'utilisateur =''ou''''='' et mot de passe = ou''=''"

Ainsi, 这样, SQL Server retourne le tableau LUSERS de tous les dossiers, et le script ASP seront pris pour des attaquants Shurufuge LUSERS le premier enregistrement de la table, Cong Er permettre à un attaquant de se connecter nom de l'utilisateur site Web. Semble empêcher ce type d'injection est très simple:

Utilisez la procédure suivante peut être atteint, le corps du programme (4)

strUserName = Replace (Request.Form ("Nom d'utilisateur"), "''", "''''")

strPassword = Replace (Request.Form ("Password"), "''", "''''")

corps de la procédure (4)

(2) pour prévenir des attaques par injection SQL, la première étape consiste à utiliser une variété de moyens de contrôle de sécurité de l'objet de demande ASP (Reques, Request.QueryString, Request.Form, Request.Cookies et Request.ServerVariables) l'entrée d'utilisateur, afin d'assurer que la commande SQL fiabilité. mesures de sécurité spécifiques varient en fonction de votre SGBD.

des attaques par injection SQL peuvent causer des dommages à l'environnement dépend de logiciels du site et de configuration. Lorsque le serveur Web à l'opérateur (dbo) de l'identité pour accéder à la base de données, en utilisant attaque par injection SQL, qui pourrait supprimer toutes les formes, créer de nouvelles formes, et ainsi de suite. Lorsque le serveur de super-utilisateur (SA) pour accéder à la base de données d'identité, en utilisant attaque par injection SQL, qui pourrait contrôler l'ensemble du serveur SQL; dans certaines configurations, un attaquant peut même créer votre propre compte d'utilisateur de bien manipuler la base de données se trouve dans le serveur Windows.

Tels que:

http://127.0.0.1/forum/showuser.asp?id=999; declare @ @ un ensemble sysname a + = 'xp_'

«Cmdshell 'exec @ un« dir c :'--& aides = 9

http://127.0.0.1/forum/showuser.asp?id=999; declare @ un ensemble sysname + @ a = "XP"

«_cm '+' Exec DSHELL '@ un« dir c :'--& aides = 9

Même pouvez effectuer en tant que: net user fqy fqy / ajouter cette commande. Bien sûr, cela vous oblige à exécuter l'état actuel doit être SA, ou vous attaquer seulement un hôte virtuel, je vous conseille de s'arrêter là.

Pour certains sites pour la machine à utiliser le port 80 pour empêcher les attaques par la machine directement pour obtenir des droits d'administration, il est devenu essentiel. Filtrer sur la xp_cmdshell devenir le primaire, de nombreux sites des procédures utilisez GET ou GET et POST de présenter des données, mixtes, et pour cela, nous fournissons un moyen de prévenir SQL EEG Jin Xing Zhu procédures Ru: comme le corps de la procédure (5)

Request.ServerVariables fqys = ("QUERY_STRING")

nothis DIM (18)

nothis (0) = "net user"

nothis (1) = "xp_cmdshell"

nothis (2) = "/ add"

nothis (3) = "20master.dbo.xp_cmdshell% exec"

nothis (4) = "administrateurs net localgroup"

nothis (5) = "select"

nothis (6) = "count"

nothis (7) = "asc"

nothis (8) = "char"

nothis (9) = "mi"

nothis (10 )="'"

nothis (11 )=":"

nothis (12 )=""""

nothis (13) = "insert"

nothis (14) = "supprimer"

nothis (15) = "drop"

nothis (16) = «tronquer»

nothis (17) = "de"

nothis (18 )="%"

CEDR = false

pour i = 0 à UBound (nothis)

If InStr (FQYs, nothis (i)) 0 Then

CEDR = true

End If

prochain

si ERRC puis

response.write "

Response.End

End If

corps de la procédure (5)

Je tiens à souligner la déclaration est la suivante: La procédure ci-dessus est une méthode GET sur les données présentées par le filtre, ne pas appliquer aveuglément.

Comme d'autres objets de la demande ASP (Reques, Request.QueryString, Request.Form, Request.Cookies et Request.ServerVariables) méthode d'attaque des méthodes de saisie de l'utilisateur, en grande partie concentrée dans la variable de script est le nombre prévu d'entrée variable (ID ), bien sûr, nous ne pouvons pas regarder le nombre de variables, telles que:

http://127.0.0.1/systembbs/showtopic.asp?tid=99&name=abc et gauche (userpasswor

d, 1) = 'a

http://127.0.0.1/systembbs/addtopic.asp?tid=99&name=abc et userpasswor

d = 'ou''='

En outre, comment une seule injection pour éviter les erreurs comme ça?

http://127.0.0.1/systembbs/addtopic.asp?tid=99; forum_forum supprimer; - & page = 33

Programme de prévention: le corps du programme (6)

...... Addtopic.asp? Action = ajouter ......

...... Addtopic.asp? Action = DELECT ......

Action 1 = trim (Request.QueryString ())

si gauche (action1, 7) "action =" puis "doit être limitée à l'action QueryString =

Erreur (err01) «la gestion des erreurs

d'autre

action = Request.QueryString ("action") 'obtenir la valeur du QueryString

End If

Sélectionner une action de cas à traiter sur QueryString

cas "ajouter"

.....

cas "supprimer"

......

Case Else 'Si la chaîne de requête n'est pas cette valeur pour la gestion des erreurs

Erreur (err02)

sélectionnez Fin

corps de la procédure (6)

Une telle attaque se produit, afin que nos webmasters ont des maux de tête à nouveau, ici, je peux vous donner une solution à la meilleure façon, en général, la longueur du nom d'utilisateur, le nombre de caractères ne doit pas excéder 15 caractères, la plupart des 14 caractères . Ensuite, nous procédons de la longueur de filtre: Si le corps du programme (7)

Nom = remplacer (,"'","") nom

Si len (nom) 16, puis

Response.write "Tu fais ce que?"

Response.End

Fin de si

corps de la procédure (7)

Pourquoi sommes nous ici et le filtrage des guillemets simples, la façon dont il convient une fois de plus prendre une longueur limite? Little dit voir l'article 4ngel première harrying'restrictions continuer injection . Ne me demandez pas comment passer au format numérique, je ne veux pas, ...^_^! hehe

A également continué à revenir à notre thème, «le script devrait nombre de variables d'entrée est la variable (ID)". Comment procéder dans la prévention, zut, trop nombreuses, la plus directe consiste à déterminer si l'entier numérique, il vérifier certains de l'approche plus personnalisée, nous introduisons un par un, tels que: le corps du programme (8)

Tout d'abord, déterminer si le nombre est entier

p_lngID = CLng (Request ("ID"))

Deuxièmement, prendre ce que je crois la longueur des mots de données de longueur n'est pas supérieure à 8 bits alors:

Si len (ID) 8 puis

Response.Write "bedpost"

fin d'intervention

End If

3 Je pense que c'est une approche plus risquée est de réaliser une base de données et interroger la table de base de données s'il n'y a pas la même chose avec la même valeur, puis renvoie une erreur.

sql = "SELECT nom de la catégorie où ID =" & ID

temp = conn.Execute (SQL)

si temp.bof ou alors temp.eof

Response.Redirect ("index.asp")

d'autre

cat_name = temp ("nom")

End If

SET TEMP = rien

«Ce qui précède est l'ID des données d'essai, le texte suivant est l'enquête officielle

sql = "SELECT ID T_ID, Nom de Catégorie où ID =" & id & "ORDER BY asc xh"

SQL rs.open, Conn, 1,1

Quatrièmement, j'ai utilisé les scripts filtrer les données, les brevets, oh ~

id = remplacer (,"'","") id

Si len (request ("id")) 8 puis «Pourquoi at-il choisir la longueur des procédures ci-dessus ont montré

response.write "

Response.End

d'autre

Si la demande ("id ") "" puis« prendre n'est pas vide est le nombre de procédures visant à prévenir les valeurs NULL apparaissent dans la page, et si nous ne sommes pas ici pour juger, le programme va vérifier une erreur.

Si IsNumeric (request ("id")) = False Then 'Feng Qingyang modifier ID données de surveillance du programme

response.write "

Response.End

End If

End If

End If

corps de la procédure (8)

Comme mes habitudes de programmation, j'aime toutes les procédures d'inspection des données ont été maintenus à des programmes publics de la station entière, tels que: la matière conn.asp, il suffit d'écrire toute la station pourrait être rétablie une fois la question.

Ici, je mentionne quelque chose au sujet du problème de l'attaque est de lancer le mot de passe ou nom d'utilisateur, couramment utilisé est

...... / Show.asp? Id = 1 et 0 (SELECT COUNT (*) à partir de admin WHERE id = 3 et gauche (nom d'utilisateur, 1) = 'a')

De cette façon, un par un, essayer, bien sûr, nous ne pouvons pas mentionner ici ce programme Perl pour exécuter le mot de passe, le programme est écrit par quelqu'un d'autre, de connaître les principes de leur propre. Ici, je veux juste donner un moyen plus pratique est de prendre le champ d'application du code de la SAC. Ce que court tout seul être beaucoup plus rapide. si les lettres, chiffres, caractères, caractères spéciaux, ils ont toujours le code correspondant ASC, appliquez les méthodes suivantes:

...... / Show.asp? Id = 1 et 0 (SELECT COUNT (*) à partir de admin WHERE id = 3 et asc (à droite (à gauche (nom d'utilisateur

e, 3), 1)) entre 1 et 10000) avec vous sur le reste du général de 97 à 122 peuvent être des amis, des lettres Eh bien, dès D. Oh, bien sûr, quelqu'un veut utiliser la fonction Mid est également bon asc ( mi (nom d'utilisateur, 2,1)) entre 1 et 10000 sont devenus.

Combien plus efficace pour prévenir des attaques par injection SQL? Nous allons mentionner expressément l'article suivant!

attaques par injection contre la télécommande

De telles attaques dans le passé doit être une des méthodes d'attaque plus communs, tels que l'attaque POST, un attaquant peut modifier facilement la valeur des données à soumettre à cette fin, a été à l'attaque. Un autre exemple: les témoins forgé, elle mérite aussi le programmeur ou de la gare longue note, ne pas utiliser des cookies pour faire de la méthode d'authentification des utilisateurs, ou vous et le voleur laisse la clé est la même raison.

Par exemple:

Si trim (cookies Request. ("fqy "))=" uname" et Request.Cookies ("upwd")

= "E3i5.com Fqy #», puis

........ Plus .........

Fin de si

Je voudrais vous écrire des programmes comme le webmaster ou les amis ne font pas de telles erreurs, est vraiment impardonnable. Contrefaits Les cookies sont de nombreuses années à partir de maintenant, vous ne pouvez pas blâmer les gens d'autres l'utiliser pour exécuter votre mot de passe. Concernant le mot de passe utilisateur ou un nom d'utilisateur, vous feriez mieux de l'utiliser est de la session la plus sûre. Si vous souhaitez utiliser COOKIES Les cookies dans votre information à ajouter un supplément, SessionID, qui est 64-bit valeur aléatoire, la solution de deviner qu'il n'est pas possible . Exemple:

s'ils ne sont pas (ou rs.BOF rs.EOF) puis

login = "true"

Session ("username" et sessionID) = Nom d'utilisateur

Session ("password" et sessionID) = Mot de passe

"Response.Cookies (" username ") = Nom d'utilisateur

"Response.Cookies (" Password ") = Mot de passe

Parlons de la façon de prévenir les attaques par injection à distance, les attaques sont généralement présenté un fichier unique sur la table locale, la form action = "chk.asp" pointer vers votre serveur peut traiter le fichier de données. Si vous êtes tous le filtrage des données dans une page de formulaire simple, puis vous féliciter, vous devrez être d'attaque script.

Comment pouvons-nous arrêter cette attaque à distance? Facile à manipuler, voir le code ci-dessous: corps de la procédure (9)

«Conscience personnelle du code ci-dessus le filtrage n'est pas très bonne, il ya des externes et elle était fière de présenter dans, puis écrire un.

«C'est le filtre fonctionne bien, a recommandé.

If InStr (Request.ServerVariables ("HTTP_REFERER"), "http://" & Request.ServerVariables ("host")) 1 alors

Response.Write "erreur de serveur lors du traitement des URL.

Si vous utilisez tous les moyens pour attaquer le serveur, vous devriez être heureux, pour votre serveur enregistre toutes les opérations ont été, nous allons d'abord informer le Bureau de sécurité publique et la sûreté de l'État d'enquêter sur votre IP. "

Response.End

End If

corps de la procédure (9)

Je pensais que tout ira bien, dans la page de formulaire en ajoutant des contraintes, comme des amis maxlength, etc .., mais Dieu est si Buzuo Mei, vous de plus en plus peur de ce qu'il était. N'oubliez pas, un attaquant peut casser par injection SQL attaque, limiter la longueur de la zone de saisie. écrire une procédure pour changer SOCKET HTTP_REFERER? Je ne veux pas. Online a publié un article:

Len ------------. Reg -----------------

Version Windows Éditeur du Registre 5,00

[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt étendu (& E)]

@ = "C: Documents et SettingsAdministrator Desktop len.htm"

"Contextes" = dword: 00000004

---------------------- ----------- Fin

Len -----------. ------------------ Htm

----------------------- ---------- Fin

Utilisation: len.reg d'abord dans le registre (note le chemin du fichier)

Et puis la copie qu'il len.htm endroit indiqué dans le Registre.

Ouvrez la page Web, le curseur sur la zone de saisie pour modifier la durée du clic droit pour voir plus d'une option d'achat à la bonne extension

Cliquez ici pour obtenir! Post-scriptum: Les mêmes restrictions peuvent également faire face à ces éléments de l'entrée script.

Comment faire? Notre limite a été épargné, et tous les efforts ont été vains? Non, posent de votre clavier, dire non. Laissez-nous continuer à le filtre à l'caractères script, ils n'étaient plus que des attaques d'injection de script. Nous utilisons tous toute la page d'action énergétique après, dans la page chk.asp, nous allons filtrer tous les caractères illégaux, le résultat? Nous ne shot feinte devant et leur dit de modifier le Registre, quand Ils trouveront changement complet, ils le font en vain.

ASP Troie

A été mentionné ici, pour vous rappeler un forum webmaster, se méfier de téléchargement de fichiers: Pourquoi a été rompu après le programme du Forum sera également l'hôte à un attaquant de prendre. Raison pour laquelle le droit ......! ASP Troie! Une chose absolument abominable. Qu'est-ce virus? Certainement pas. Les fichiers facilement dans votre programme du forum, va chercher ta vieille. Oh non hématémèse étrange. Comment faire pour empêcher ASP de Troie a été téléchargé sur le serveur? Méthode est simple, si votre forum à l'appui de téléchargement de fichiers, vous pouvez définir le format de fichier que vous souhaitez télécharger, je n'utilise pas peut changer le format de fichier, directement à partir de la procédure verrouillés, seul le format de fichier image, et les fichiers compressés peuvent être complètement plus commode de laisser leurs propres également plus pratique de laisser l'attaquant. Comment juger le format, j'ai ici une collection, aussi changé un, nous pouvons examiner: Le corps de la procédure (10)

«Déterminer le type de fichier est qualifié

Private Function CheckFileExt (FileExt)

dim Forumupload

Forumupload = "gif, jpg, bmp, jpeg"

Forumupload = split (Forumupload ,",")

pour i = 0 à UBound (Forumupload)

si LCase (FileExt) = LCase (trim (Forumupload (i))) alors

= True CheckFileExt

Fonction de sortie

d'autre

CheckFileExt = false

End If

prochain

End Function

«Vérifier la légitimité du document

ensemble MyFile = Server.CreateObject ("Scripting.FileSystemObject")

ensemble MyText = MyFile.OpenTextFile (sFile, 1) »lire un fichier texte

sTextAll = LCase (MyText.ReadAll): MyText.close

«Déterminer le risque des opérations de fichier utilisateur

| GetFolder SSTR = "8 |.. | CreateFolder. | Supprimer dossier. | CreateDirectory

. Deletedirectory "

SSTR = SSTR & "|. saveas | wscript.shell | script.encode"

sNoString = split (SSTR ,"|")

pour i = 1 à sNoString (0)

If InStr (sTextAll, sNoString (i)) 0 Then

Upl.Path sFile = & sFileSave: sFile fs.DeleteFile

Response.write "

"& & SFileSave" documents et l'exploitation des répertoires contenant les ordonnances pertinentes "& _

"

"& Mid (sNoString (i), 2) &", pour des raisons de sécurité, ne peuvent pas télécharger. "& _

"

"

Response.End

End If

prochain

corps de la procédure (10)

Ajouter à votre transfert de leurs procédures en faire une validation, puis la sécurité de vos processus de téléchargement sera grandement améliorée.

Qu'est-ce? Vous inquiétez pas? Out killer, demandez à votre fournisseur d'hébergement pour l'aider. Se connecter sur le serveur, l'ID dans le PROG shell.application "articles et" shell.application.1 "élément renommé ou supprimé. Puis "WScript.Shell" articles et "WSCRIPT.SHELL.1« Ces deux devrait être renommé ou supprimé. Oh, je peux m'aventurer à dire que plus de la moitié de la Chine peut-être pas la réhabilitation de l'hôte virtuel. Heureusement, vous pouvez les utilisateurs très coopératif, sinon ...... je supprime, je les supprimer, supprimer supprimer supprimer mon ......

Résumé

Comment mieux prévenir les attaques par injection SQL? Ici, je suis de recommander différentes façons, en premier lieu, des programmes gratuits n'ont pas vraiment l'utilisation gratuite, puisque vous pouvez partager le code original, puis l'attaquant peut analyser le code même. Si les propriétaires ont la possibilité de changer ce qui est le meilleur des noms de table de base de données, noms de domaine, ne modifient que les admin clé, nom d'utilisateur, mot de passe sur elle, comme forum_upasswd ce domaine qui peut deviner le nom? Si vous avez deviné, la plupart des loterie bon achat il est vite, un premier prix ne sera pas vous qui le fera? En outre, la clé réside dans le mot de passe administrateur du site général, et de protéger votre mot de passe administrateur qui est essentiel, au moins 10 le nombre de combinaisons de lettres. Plus la plupart des programmes site va maintenant utiliser MD5 pour chiffrer le mot de passe utilisateur, en plus de votre mot de passe de robustesse, de sorte que la sécurité de votre site sur l'considérablement augmenté. Si il existe une vulnérabilité d'injection SQL, un attaquant ne peut pas vous faire gagner le site immédiatement.