Contrôle de l'injection SQL dans MVC
C'est mon premier temps à développer en utilisant MVC et je veux qu'il soit sécurisé.
Lorsque j'utilise HtmlEncode il convertit la Chaîne de caractères à l'équivalent HTML Chaîne.
L'utilisateur peut entrer dans la recherche par exemple ali ou ali-et ils existent dans ma base de données. Comment contrôler ma recherche et la connexion d'injection SQL s'il vous plaît?
Également tutoriel ou les meilleures pratiques pour éviter l'injection de scripts?
comment voulez-vous accéder à votre base de données? LINQ ? Entity Framework?
J'utilise la normale , ce qui vous préférez LINQ ou Entity framework
Découvrez ce lien.... Les deux vont vérifier pour l'injection sql pour vous....
merci qu'en injection de script merci
Veuillez vous améliorer en mentionnant la façon dont vous accédez à votre base de données.
J'utilise la normale , ce qui vous préférez LINQ ou Entity framework
Découvrez ce lien.... Les deux vont vérifier pour l'injection sql pour vous....
merci qu'en injection de script merci
Veuillez vous améliorer en mentionnant la façon dont vous accédez à votre base de données.
OriginalL'auteur AMH | 2012-01-31
Vous devez vous connecter pour publier un commentaire.
LINQ et Entity Framework déjà vérifier pour l'Injection SQL pour vous.
Mais vous devriez lire la documentation de toute façon:
LINQ MSDN Lien (section Attaques par Injection SQL)
Entity Framework MSDN Lien (section Considérations relatives à la Sécurité pour les Requêtes)
Espère que cela aide!
Je pense que cela doit être une autre question, mais ce lien peut être utile: asp tutoriels
qui vous préférez veuillez LINQ ou EF
Dans mon cas particulier, je préfère EF, mais je ne sais pas ce que vous essayez de construire... en Fait j'ai pris ma décision lecture de ceci
J'ai une base de données qui contient mon site web, et va se connecter, ajouter, supprimer les
OriginalL'auteur Cacho Santa
Aussi longtemps que vous utilisez les requêtes paramétrées ou un ORM comme NHibernate ou Entity Framework, vous n'avez pas à faire quelque chose pour éviter l'injection SQL. Les paramètres sont transmis au serveur à l'extérieur de la véritable instruction SQL, dans le cadre de l'appel RPC sur le serveur. La plupart des Formulaires utiliser des requêtes paramétrées pour la performance reasones, de sorte qu'ils ne sont pas vulnérables à une injection SQL.
Injection SQL n'est possible que si vous créez une instruction SQL par la concaténation de chaîne de valeurs.
Cela dit, vous avez encore de se méfier de la saisie de l'utilisateur pour empêcher les attaques par injection de script. Heureusement, ASP.NET MVC fournit déjà une demande de mécanisme de validation (voir La Compréhension De La Demande De Validation).
Peu importe ce que vous passez le paramètre (et par le paramètre je moiet un DbParameter-objet dérivé comme SqlParameter (msdn.microsoft.com/en-us/library/...), il sera transmis au serveur comme une simple chaîne de caractères. Il n'est jamais exécutée. Vous pouvez toujours avoir des ennuis si vous utilisez la valeur stockée à construire une instruction SQL par la concaténation de chaîne dans une autre partie de votre application.
OriginalL'auteur Panagiotis Kanavos
Si vous utilisez LINQ pour effectuer vos requêtes de base de données, il élimine ce genre de SQL injection de risques pour vous.
OriginalL'auteur Hanno