Ich frage mich, ob jemand mir einen Link zu einem Best Practice-Muster für das Einfügen von Daten in einer SQL-Datenbank mit gespeicherten Prozeduren geben kann. Ich meine, welche Verfahren sollten wir ergreifen, um sicherzustellen, dass validierte Daten durch gespeicherte Prozeduren übertragen werden.Best Practice für die Verwendung von Stored Procedures in asp.net zum Einfügen von Daten
Antwort
Je nachdem, ob Sie ein ORM verwenden oder direkten Datenbankzugriff verwenden, gibt es viele verschiedene Möglichkeiten. Eine Sache ist, dass Sie das SqlParameter-Objekt verwenden sollten, um SP-Parameter zu erstellen. Es gibt eine Vielzahl von Möglichkeiten, um eine SqlParameter mit verschiedenen Optionen zu schaffen, aber die einfachste Form ist
SqlParameter[] prms = new SqlParameter[1];
prms[0] = new SqlParameter("@userid", "Bob");
Aber wie kann ich Javscript oder SQL-Code abfangen, wenn sie es in ein Textfeld geben? Zum Beispiel erlaube ich dem Benutzer, eine E-Mail-Nachricht zu schreiben, und ich speichern diese Nachricht auch in db vor dem Senden von E-Mails. Aber ich möchte nicht, dass Benutzer/Hacker einen voll funktionsfähigen Code in SQL schreiben, um meine Website zu hacken oder die Daten zu beschädigen. Obwohl ich Sql-Parameter verwende, aber ist es sicher? – Mohit
Wenn Sie Parameter verwenden, können die Hacker keine SQL-Injektion durchführen. –
Also das ist, was ich fragen, dass die Aussage, die Herr Cody C gegeben hat, genug für mich ist, oder muss ich noch andere Dinge tun? – Mohit
Ich würde empfehlen, eine Logik zur Validierung bei einer Schicht oben das gespeicherte Prozedur Implementierung einbetten. Auf diese Weise können Sie Ihre Implementierung und Ihr Exposure viel flexibler gestalten. Ein einfaches Beispiel ist, dass Sie eine Validierungsbibliothek für mehrere Projekte wiederverwenden können. Die meisten ORM-Bibliotheken unterstützen die Validierung in ihrer einfachsten Form, indem sie die entsprechende Typzuweisung zum Zeitpunkt der Kompilierung überprüfen.
Ich würde auch empfehlen, dass Sie Ihre Transaktionslogik in einem Layer über die gespeicherten Prozeduren implementieren.
- 1. ASP.NET C# & Stored Procedures
- 2. Best Practice für die Verwendung von JavaScript?
- 3. Best Practice für die Verwendung von AFNetworking
- 4. Bearbeiten von SQL-Stored Procedures
- 5. QT/PyQT Best Practice für die Verwendung von QT Designer
- 6. Wie Stored Procedures verwenden w/ASP.NET Datagrid
- 7. Best Practice für die Verwendung HttpClient
- 8. Best Practice zum Definieren von Enums?
- 9. Best practice in Laravel Klinge Verwendung von {{}}
- 10. Best Practice für die Verwendung leicht modifizierender Module von CPAN?
- 11. Best Practice für die Generierung von Ereignissen?
- 12. Best Practice für die Verwendung von Java-Systemeigenschaften
- 13. ASP.NET: Best Practice zum Umleiten zu https
- 14. Best Practice für die Überprüfung von Einheitentestmethodenparametern
- 15. BigQuery-Best Practice zum Segmentieren von Tabellen nach Daten
- 16. Asp.Net Paginierung best practice
- 17. Best Practice von RestAngular
- 18. Best Practice für die Verwendung von fopen() oder file_get_contents() zum Abrufen von Webseiten
- 19. Stripe Backend implementieren - Best Practice zum lokalen Speichern von Daten oder zur Verwendung von API-Calls?
- 20. Best Practice zum Organisieren von Methoden?
- 21. Schienen: Best Practice zum Speichern von Benutzereinstellungen?
- 22. Best Practice zum Erstellen von Web-Services
- 23. C# Stored Procedures
- 24. WebMatrix und Stored Procedures
- 25. Stored Procedures Reverse Engineering
- 26. Entwickeln von MySQL Stored Procedures mit Intellisense?
- 27. Vor- und Nachteile von Trigger vs. Stored Procedures für Denormalisierung
- 28. Best Practice zum Schreiben von wiederverwendbarem Code
- 29. Best Practice zum Initialisieren von Elementvariablen?
- 30. Best Practice zum Aktualisieren von Django contrib
Ich verstehe deine Frage nicht. Die offensichtliche Antwort lautet: "Validiere die Daten, bevor du sie verwendest", aber das ist zu offensichtlich, um das zu sein, was du meintest. Bitte klären Sie. –
Handeln Sie wie die Daten wurden nicht validiert, wenn Sie es bekommen? – Martin
NEIN Ich validiere Daten für Größe und Datentyp. Aber was, wenn irgendein Hacker versucht, etwas Javascript-Code oder SQL-Code hinzuzufügen. Wie kann ich diese Dinge einfangen? Darüber hinaus ist es in Ordnung, wenn ich diese Anweisung nur für die Eingabe von Parametern verwenden cm.Parameters.AddWithValue ("@ UserID", TxtID.Text.ToString()); Ich wollte nur wissen, ob es ein gutes Übungsmuster für diese Dinge gibt. – Mohit