2009-08-04 9 views
0

Je me demandais si quelqu'un pouvait me donner un lien sur la façon de suivre un modèle de meilleure pratique pour insérer des données dans une base de données SQL en utilisant des procédures stockées. Je veux dire, quelles procédures devrions-nous prendre pour assurer que les données validées soient transmises via des procédures stockées.Meilleure pratique pour utiliser les procédures stockées dans asp.net pour insérer des données

+0

Je ne comprends pas votre question. La réponse évidente est: «validez les données avant de les utiliser», mais c'est trop évident pour être ce que vous vouliez dire. Précisez s'il vous plaît. –

+0

Agir comme les données n'ont pas été validées lorsque vous l'obtenez? – Martin

+0

NO Je valide Data, pour la taille et DataType. Mais que faire si un pirate essaie d'ajouter du code javascript ou du code SQL. Comment puis-je piéger ces choses? De plus, est-ce que je peux utiliser cette instruction pour entrer des paramètres cm.Parameters.AddWithValue ("@ UserID", TxtID.Text.ToString()); Je voulais juste savoir s'il y avait un bon modèle de pratique pour ces choses. – Mohit

Répondre

1

Il existe plusieurs façons de procéder selon que vous utilisez un ORM ou que vous utilisez un accès direct à la base de données. Une chose est que vous devez utiliser l'objet SqlParameter pour créer des paramètres SP. Il existe une grande variété de façons de créer un SqlParameter avec différentes options, mais la forme la plus simple est

SqlParameter[] prms = new SqlParameter[1]; 
prms[0] = new SqlParameter("@userid", "Bob"); 
+0

Mais comment puis-je piéger javscript ou le code SQL s'ils le transmettent dans une zone de texte? Par exemple, je permets à l'utilisateur d'écrire un e-mail et j'enregistre également ce message en db avant d'envoyer un e-mail. Mais je ne veux pas que les utilisateurs/hackers écrivent un code entièrement fonctionnel en SQL pour pirater mon site ou corrompre les données. Même si j'utilise les paramètres Sql, mais est-ce sécurisé? – Mohit

+1

Si vous utilisez des paramètres, les pirates ne peuvent pas effectuer d'injection SQL. –

+0

Donc, c'est ce que je demande, que la déclaration que M. Cody C a faite est suffisante pour moi, alors ou dois-je faire d'autres choses aussi? – Mohit

2

Je vous recommande intégrer une logique de validation à une couche ci-dessus la mise en œuvre de la procédure stockée. De cette façon, vous pouvez avoir beaucoup plus de flexibilité dans votre mise en œuvre et votre exposition. Un exemple simple est que vous pouvez réutiliser une bibliothèque de validation sur plusieurs projets. La plupart des bibliothèques ORM prennent en charge la validation dans sa forme la plus simple en vérifiant l'affectation de type appropriée au moment de la compilation.

Je vous recommande également d'implémenter votre logique transactionnelle dans une couche au-dessus de les procédures stockées.

+0

Pouvez-vous me suggérer une bonne bibliothèque ORM gratuite? – Mohit

+0

Je vraiment, vraiment creuser SubSonic [http://subsonicproject.com/Download]. J'ai eu une expérience agréable w/2.2 mais je n'ai pas encore utilisé la version 3.0. – t3rse

Questions connexes