Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GitHub Copilot unterstützt Entwickler bei der Identifizierung und Behebung allgemeiner Sicherheitsrisiken in SQL-Code- und Anwendungsebenenabfragen. Es kann helfen, Sicherheitsrisiken wie SQL-Einfügung, überlastete Daten und unsichere Muster zu erkennen, insbesondere für Entwickler ohne starken Sicherheitshintergrund, indem praktische, kontextbezogene Empfehlungen während der Entwicklung bereitgestellt werden.
Loslegen
Stellen Sie sicher, dass Sie mit einer Datenbank verbunden sind und ein aktives Editorfenster mit der MSSQL-Erweiterung geöffnet ist. Diese Verbindung ermöglicht es dem @mssql
Chatteilnehmer, den Kontext Ihrer Datenbankumgebung zu verstehen und präzise und kontextbezogene Vorschläge zu ermöglichen. Ohne Datenbankverbindung verfügt der Chatteilnehmer nicht über das Schema oder den Datenkontext, um aussagekräftige Antworten bereitzustellen.
In den folgenden Beispielen wird die AdventureWorksLT2022
Beispieldatenbank verwendet, die Sie auf der Startseite von Microsoft SQL Server-Beispielen und Communityprojekten herunterladen können.
Um optimale Ergebnisse zu erzielen, passen Sie Tabellen- und Schemanamen an Ihre eigene Umgebung an.
Stellen Sie sicher, dass der Chat das @mssql
Präfix enthält. Geben Sie @mssql
z. B. gefolgt von Ihrer Frage oder Aufforderung ein. Dadurch wird sichergestellt, dass der Chatteilnehmer versteht, dass Sie sql-bezogene Unterstützung anfordern.
Erkennen und Beheben von Sicherheitsrisiken mit GitHub Copilot
GitHub Copilot hilft Entwicklern, häufige Sicherheitsrisiken frühzeitig im Entwicklungsprozess zu erkennen und zu beheben, bevor sie die Produktion erreichen. Unabhängig davon, ob Sie rohe SQL-, ORMs- oder gespeicherte Prozeduren verwenden, kann GitHub Copilot unsichere Muster identifizieren, potenzielle Risiken erklären und sicherere Alternativen basierend auf Ihrem Datenbankkontext vorschlagen. Dies ist besonders nützlich für Entwickler, die nicht auf Sicherheit spezialisiert sind, aber sichere Codierungsmethoden befolgen müssen.
Hier finden Sie häufige Anwendungsfälle und Beispiele dafür, was Sie über den Chatteilnehmer fragen können.
SQL-Einfügungserkennung
DIE SQL-Einfügung ist eine der häufigsten und gefährlichsten Sicherheitsrisiken in Datenbankanwendungen. GitHub Copilot kann dazu beitragen, nicht parametrisierte Abfragen, Zeichenfolgeninterpolationsprobleme und Missbrauch dynamischer SQL zu identifizieren und gleichzeitig sicherere, parametrisierte Alternativen zu empfehlen, die auf Ihren Kontext zugeschnitten sind.
- Ich arbeite mit
SQLAlchemy
inPython
an meinem aktuellen DatenbankschemaSalesLT
. Überprüfen Sie die folgendeSQLAlchemy
Abfrage auf potenzielle Sicherheitsrisiken, wie z. B.SQL
Injection, Überabfrage oder Leistungsprobleme. Schlagen Sie gegebenenfalls Verbesserungen mithilfe parametrisierter Abfragen, Verbindungspooling und anderer sichererSQL Server
Methoden vor, um Leistung und Sicherheit zu gewährleisten.
query = f"SELECT * FROM SalesLT.Customer WHERE LastName = '{user_input}'"
result = engine.execute(query).fetchall()
- Analysieren Sie die folgende
JavaScript
SQL
Abfrage nach potenziellen Sicherheitsrisiken. Identifizieren Sie Risiken wieSQL
Einfügung, Überholen und schlechte Authentifizierungsmethoden. Erläutern Sie, warum diese Abfrage unsicher ist und eine sichere Alternative bereitstellt.
const query = `SELECT * FROM Users WHERE Username = '${username}' AND Password = '${password}'`;
Simulieren Sie mithilfe meiner aktuellen Datenbank einen Einfügungsangriff
SQL
für dieSalesLT.uspGetCustomerOrderHistory
gespeicherte Prozedur und schlagen Korrekturen vor.Überprüfen Sie die gespeicherte Prozedur
SalesLT.uspGetCustomerOrderHistory
in meiner aktuellen Datenbank auf potenzielle SQL-Einfügungsrisiken. Erläutern Sie, wie unparameterisierte oder nicht ordnungsgemäß überprüfte Eingaben ausgenutzt werden können, und empfehlen Sie sichere Codierungsmethoden.Überprüfen Sie die gespeicherte
SalesLT.uspGetCustomerOrderHistory_Insecure
Prozedur. Identifizieren Sie potenzielle Sicherheitsprobleme in der Implementierung, und stellen Sie dann eine überarbeitete Version der gespeicherten Prozedur bereit, die diese Bedenken behandelt, ohne die bewährten Sicherheitsmethoden explizit aufzulisten.
Mit dem folgenden T-SQL können Sie die gespeicherte Prozedur erstellen:
CREATE OR ALTER PROCEDURE [SalesLT].[uspGetCustomerOrderHistory_Insecure]
@CustomerID NVARCHAR (50)
AS
BEGIN
DECLARE @SQL AS NVARCHAR (MAX) = N'SELECT *
FROM SalesLT.SalesOrderHeader
WHERE CustomerID = ' + @CustomerID + ';';
EXECUTE (@SQL);
END
GO
Allgemeine Sicherheitsvorschläge
Über die SQL-Einfügung hinaus machen viele Datenbankanwendungen vertrauliche Daten verfügbar oder verwenden standardmäßig unsichere Konfigurationen. GitHub Copilot bietet Anleitungen zum Verschlüsseln von Verbindungen, Maskieren oder Schützen personenbezogener Daten und zur Anpassung an bewährten Methoden für sichere Authentifizierung und Autorisierung in mehreren Entwicklungsstapeln.
Empfehlen Sie sichere Methoden zum Speichern vertraulicher Daten in der
SalesLT.Address
Tabelle.Was sind die besten Strategien oder integrierten Features in meiner Datenbank zum Maskieren personenbezogener Daten in der
SalesLT.Customer
Tabelle?Wie kann ich meine Verbindungszeichenfolge
Entity Framework Core
so konfigurieren, dass Verschlüsselung erzwungen wird und keine Anmeldeinformationen verfügbar werden?Wie kann ich in einer
Prisma
- oder Node.js-Umgebung die Microsoft Entra ID-Authentifizierung oder die verwaltete Identität sicher mitSQL Server
verwenden, anstatt Kennwörter zu speichern?Welche
SQL Server
Optionen sollte ich aktivieren oder überprüfen (zAlways Encrypted
. B. ,Transparent Data Encryption
), um Kundendaten bei verwendung von ORMs wie Sequelize oder EF Core zu schützen?
Feedback: Sicherheitsanalyse
Um uns dabei zu helfen, GitHub Copilot für die MSSQL-Erweiterung zu verfeinern und zu verbessern, verwenden Sie die folgende GitHub-Problemvorlage, um Ihr Feedback zu übermitteln: GitHub Copilot Feedback
Berücksichtigen Sie bei der Übermittlung von Feedback Folgendes:
Getestete Szenarien – Teilen Sie uns mit, auf welche Bereiche Sie sich konzentrieren, z. B. Schemaerstellung, Abfragegenerierung, Sicherheit, Lokalisierung.
Was gut funktioniert hat – Beschreiben Sie alle Erfahrungen, die sich reibungslos, hilfreich fühlen oder Ihre Erwartungen überschritten haben.
Probleme oder Fehler – Schließen Sie alle Probleme, Inkonsistenzen oder verwirrende Verhaltensweisen ein. Screenshots oder Bildschirmaufzeichnungen sind besonders hilfreich.
Verbesserungsvorschläge – Teilen Sie Ideen zur Verbesserung der Benutzerfreundlichkeit, zur Erweiterung der Abdeckung oder zur Verbesserung der Antworten von GitHub Copilot.
Verwandte Inhalte
- GitHub Copilot für MSSQL-Erweiterung für Visual Studio Code
- Schnellstart: Chat- und Inline-GitHub-Copilot-Vorschläge verwenden (Vorschau)
- Schnellstart: Generieren von Code (Vorschau)
- Schnellstart: Verwenden des Schema-Explorers und des Designers (Vorschau)
- Schnellstart: Verwenden des Smart Query Builder (Vorschau)
- Schnellstart: Abfrageoptimierer-Assistent (Vorschau)
- Schnellstart: Verwenden des Business Logic Explainer (Vorschau)
- Schnellstart: Lokalisierungs- und Formatierungshilfsprogramm (Vorschau)
- Schnellstart: Generieren von Daten zum Testen und Mocken (Vorschau)
- Einschränkungen und bekannte Probleme