2 Stimmen

Sicherheit hinter Linq to SQL

Ich bin neu in Visual C# und das .NET-Framework, aber haben eine ziemlich viel Erfahrung in LAMP-Entwicklung. Ich frage mich, über die Sicherheit von linq zu sql Kommunikation.

Normalerweise wurden bei der LAMP-Methode Maßnahmen wie die Verwendung eines Service-Layers eingesetzt, um die Sicherheit des Systems zu erhöhen, indem die Authentifizierungsdaten der Datenbank nicht über http preisgegeben wurden.

Nach der Durchsicht einiger empfohlen (von microsoft) linq->sql tutorials scheint es, als ob die clientseitige Anwendung (über eine Webanwendung) direkt mit der Datenbank interagiert. Dies scheint nicht sehr effizient oder sicher zu sein ....

Ich würde gerne folgende Dinge wissen:

1) Welche Maßnahmen gibt es in .NET, um eine sichere Kommunikation zwischen clientseitigen und serverseitigen Anwendungen zu ermöglichen?

2) Gibt es irgendwelche vorinstallierten Service-Layer-Frameworks, mit denen man in .NET arbeiten kann?

3) Ist es möglich, manuell http-Anforderungsmethoden (POST/GET) zu verwenden, um Daten von einer c#-Webanwendung an eine entfernte SQL Server-Datenbank zu senden?

4 Stimmen

LINQ-to-SQL ist ein rein serverseitiges Framework. Wie haben Sie entschieden, dass der Client mit der Datenbank interagiert?

4 Stimmen

Ich möchte darauf hinweisen, dass Microsoft die Unterstützung für Linq-to-Sql vor ein paar Jahren eingestellt hat. Es wird keine Updates für diese Technologie geben.

0 Stimmen

@Inuyasha - Ist es durch etwas anderes ersetzt worden?

2voto

shrutyzet Punkte 529

In einer ASP.NET-Anwendung wird der gesamte C#-Code, den Sie schreiben, auf dem Server (serverseitig) ausgeführt, und nach seiner Ausführung wird die Seite an den Client (Browser) gesendet. Der clientseitige Code bezieht sich auf Javascript. Datenbankdetails werden nicht an den Client gesendet.

0voto

Jon Hanna Punkte 106367

Man könnte ein LINQ-System als "Client" in Bezug auf die Datenbank bezeichnen, aber das wäre so, als würde man den PHP-Teil einer LAMP-Anwendung als "Client" in Bezug auf die Datenbank bezeichnen - völlig richtig, aber etwas irreführend. In Bezug auf den Gesamtclient - den Browser - gibt LINQ genauso wenig Authentifizierungsdetails preis wie LAMP.

  1. Welchen "Client" meinen Sie hier? Was den Browser betrifft, so besteht der Hauptmechanismus darin, dass der Browser nicht weiß, was Sie gerade tun. Er wird nicht einmal wissen, dass es sich um LINQ handelt, es sei denn, Sie gehören zu der Sorte Mensch, die gerne "Powered by..."-Bilder auf Ihre Webseite setzt. Für die Verbindung zwischen dem Client und der Datenbank gibt es mehrere Authentifizierungsmodelle (Benutzer/Pass, NTLM, Kerberos und ich glaube noch einige mehr), und Sie können SSL und IPSec für die Verbindung zwischen dem Webserver und dem Datenbankserver verwenden.

  2. Sie meinen wie MVC und WCF?

  3. Ja, das gibt es seit SQL2000, siehe http://msdn.microsoft.com/en-us/library/aa226553%28v=sql.80%29.aspx obwohl ich nicht glaube, dass es sehr populär ist. Dies hat nichts mit LINQ zu tun, das sich über 1433 mit dem SQL-Protokoll verbinden würde und vielleicht zum Aufbau einer Website verwendet werden könnte, die eingeschränkte Operationen statt manueller Manipulation des Servers über HTTP erlaubt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X