Personnellement, j'essaie d'écrire du code ASP.NET sécurisé. Cependant, je suis devenu assez paranoïaque à propos du code que j'écris, car je travaillais pour un Registrar (cibles de haute fraude). Existe-t-il des fonctions ASP.NET que je devrais examiner avec un examen extrême (autre que l'accès SQL - j'en connais assez pour ne pas faire de SQL dynamique).Quelles commandes ASP.NET peuvent entraîner un code non sécurisé?
Répondre
Ceci est un excellent article MSDN: Security Practices: ASP.NET 2.0 Security Practices at a Glance.
Extrait:
Comment éviter cross site scripting
entrée Valider et encode la sortie. Limitez les entrées en les validant pour le type, la longueur, le format et la plage . Utilisez la méthode HttpUtility.HtmlEncode pour sortie de codage si elle contient l'entrée de l'utilisateur, telle que l'entrée du formulaire champs, chaînes de requête et cookies ou provenant d'autres sources, telles que des bases de données. Ne faites jamais que renvoyer l'entrée à l'utilisateur sans valider et/ou encoder les données . L'exemple suivant montre comment pour coder un champ de formulaire.
Response.Write(HttpUtility.HtmlEncode(Request.Form["name"]));
Si vous retournez les chaînes d'URL qui contiennent entrée au client, utilisez la méthode HttpUtility.UrlEncode pour encoder ces chaînes d'URL, comme indiqué ici.
Response.Write(HttpUtility.UrlEncode(urlString));
Si vous avez des pages qui ont besoin d'accepter une gamme d'éléments HTML, tels que par une sorte de riche saisie de texte champ, vous devez désactiver la validation de la demande ASP.NET pour la page.
Activer erreurs personnalisées pour garder vos erreurs
<customErrors mode="On" defaultRedirect="YourErrorPage.htm" />
entrée utilisateur Ne faites jamais confiance. Ne supposez jamais que la validation côté client empêchera les mauvaises données d'entrée. Assurez-vous toujours que ValidateRequest = "true" et EnableEventValidation = "true" dans votre fichier web.config:
- 1. Importer une classe avec un code non sécurisé
- 2. Comment exécuter du code Ruby non sécurisé dans un bac à sable sécurisé?
- 3. Commandes non actualisées dans ASP.net MVC
- 4. ASP.NET MVC - Comment rediriger sécurisé?
- 5. Ce code est-il sécurisé?
- 6. .NET Micro Framework Fichier non sécurisé
- 7. Quelles sont les commandes importantes de Ruby?
- 8. Commandes de serveur dans un répéteur asp.net
- 9. Synchronisation de base de données partielle entre site sécurisé et non sécurisé?
- 10. Les contrats de code Microsoft peuvent-ils être utilisés avec un site Web ASP.NET?
- 11. Qu'est-ce qu'un équivalent sécurisé d'effacement de STL non-nul?
- 12. Quelle est la fonction réelle du projet C# "Autoriser le code non sécurisé"
- 13. Service Web ASP.NET sécurisé et php
- 14. ASP.NET MVC Beta 1 - Mes commandes utilisateur existantes fonctionnent-elles dans mes vues telles quelles?
- 15. Quelles colonnes peuvent être utilisées dans la clause OUTPUT INTO?
- 16. Commandes Sharepoint dans l'application ASP.NET
- 17. Classement des commandes - Méthode d'extension non-allumage!
- 18. Est-ce que les commandes ajax d'asp.net peuvent être utilisées comme contrôles côté client pur?
- 19. Prism - Commandes non mise à feu
- 20. C# Non Éliminer les commandes comme je l'ai indiqué à
- 21. Commandes de .bashrc non disponible dans Emacs
- 22. Commandes serveur dans ASP.NET MVC
- 23. Quelles propriétés CSS peuvent être appliquées aux éléments HTML?
- 24. Augmenter la productivité | Quelles commandes est-ce que je répète?
- 25. Commandes WPF - Exécution sans code par défaut
- 26. Charger dynamiquement du contenu non sécurisé pour éviter le dialogue
- 27. commandes Ajout de problème d'exécution ASP.Net
- 28. Un thread non géré s'exécutant Code managé
- 29. Commandes de l'Android Terminal Emulator
- 30. asp.net l'un des problèmes de la page type sécurisé
Merci Mitch! J'apprécie votre réponse, cependant ... la réponse que vous avez donnée me porte à croire que c'est une contre-mesure pour le code SQL non échappé ou pour le code non-DB. Raison d'être que tout est basé sur le stockage d'entrée des utilisateurs. En outre, les choses URLEncoding ont tendance à "sur-encoder" dans mon expérience, car elles doivent s'abonner à des règles d'encodage d'URL (très strictes). Aussi, avec ASP.NET j'essaye d'éviter toute Response.Writes. Je trouve que les contrôles de code ASP.NET-infront donnent une meilleure conscience structurelle à mon HTML. Je vous donnerai +1 cependant, parce que vous êtes techniquement valide :) – Thunder3