ASP classique d'Injection SQL
J'ai récemment hérité d'un classique asp site avec une tonne de inline instructions SQL insert qui sont vulnérables à des attaques par injection SQL.
Insérer ces instructions sont exécutées via l'objet de commande ADO.
Sera réglage de l'ADO à l'Objet de Commande est Préparée à true la propriété de s'assurer que la requête est paramétrée avant l'exécution, atténuant ainsi les risques d'injection SQL?
double possible de > Classique ASP SQL Injection de Protection
OriginalL'auteur klork | 2009-10-06
Vous devez vous connecter pour publier un commentaire.
Ce Lien devrait s'avérer utile.
Classique ASP SQL Injection de Protection
OriginalL'auteur kevchadders
Pas, si vous construisez une chaîne SQL avec les valeurs que vous obtenez directement à partir de "l'extérieur", puis une "déclaration" ne vous aidera pas.
un
est encore d'avoir des ennuis.
La seule façon de résoudre ce problème est d'utiliser les paramètres de votre requête.
OriginalL'auteur Hans Kesting
Vous pouvez aussi regarder une asp classique d'un projet open source appelé "Owasp stinger'. Qui permet non seulement avec l'injection Sql, mais d'en-tête d'injection et de nombreux autres problèmes de sécurité communes à toutes les applications web.
http://www.owasp.org/index.php/Classic_ASP_Security_Project
OriginalL'auteur user213186
Voici un autre bon lien et l'exemple.
http://blogs.iis.net/nazim/archive/2008/04/28/filtering-sql-injection-from-classic-asp.aspx
Dans le passé, nous avons créé un couple de fonctions pour gérer tout apport extérieur pour les injections SQL et XSS. Puis, lentement, nous avons converti l'ensemble de la ligne SQL, procédures stockées.
OriginalL'auteur Jason Too Cool Webs
Ce que je vous suggère de faire est d'écrire une fonction pour désinfecter l'entrée de l'utilisateur, puis l'exécution de toutes les variables de requête. Quand j'ai écrit le mien j'ai fait des trucs comme:
La plupart des injection SQL voudrais essayer quelque chose comme
' or 1=1 or a='
ainsi, le code SQL serait :
Pour échapper les guillemets simples est le vrai gros vous avez besoin de s'inquiéter.
je suis d'accord paramètres sont les meilleures pratiques, mais si vous essayez de nettoyer un tas de code réel rapide puis habillage de toutes les entrées de l'utilisateur dans une fonction est plus facile
Je ne pense pas que cela prend autant de temps pour ajouter un tas de
oCmd.Parameters.Append oCmd.CreateParameter(...)
déclarations de votre code, et honnêtement, dans des situations comme cela, je pense que vous êtes mieux en se concentrant sur la qualité plutôt que la vitesse, particulièrement si vous n'avez pas le temps de faire le travail deux fois.OriginalL'auteur Carter Cole