Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A GitHub Copilot segít a fejlesztőknek az SQL-kód- és alkalmazásréteg-lekérdezések gyakori biztonsági kockázatainak azonosításában és kezelésében. Olyan biztonsági réseket észlel, mint az SQL-injektálás, a túlexponált adatok és a nem biztonságos minták. Az erős biztonsági háttérrel nem rendelkező fejlesztők a GitHub Copilot használatával gyakorlati, környezettudatos javaslatokat kaphatnak a fejlesztés során.
Első lépések
Győződjön meg arról, hogy csatlakozik egy adatbázishoz, és meg van nyitva egy aktív szerkesztőablak az MSSQL kiterjesztéssel. Amikor csatlakozik, a @mssql csevegés résztvevői megértik az adatbázis-környezet kontextusát, és pontos, környezettudatos javaslatokat tehetnek. Ha nem csatlakozik adatbázishoz, a csevegés résztvevője nem rendelkezik a sémával vagy az adatkörnyezettel, hogy értelmes válaszokat adjon.
Az alábbi példák a AdventureWorksLT2022 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.
A legjobb eredmény érdekében módosítsa a táblázat- és sémaneveket a saját környezetének megfelelően.
Győződjön meg arról, hogy a csevegés tartalmazza az @mssql előtagot. Írja be például a @mssql jel után a kérdését vagy felszólítását. Ez az előtag biztosítja, hogy a csevegés résztvevője megértse, hogy SQL-hez kapcsolódó segítséget kér.
Biztonsági kockázatok észlelése és javítása a GitHub Copilottal
A GitHub Copilot segít a fejlesztőknek észlelni és kijavítani a gyakori biztonsági réseket a fejlesztési folyamat korai szakaszában, mielőtt elérnék az éles üzemet. Függetlenül attól, hogy nyers SQL-t, objektum-relációs leképezési (ORM-) keretrendszereket vagy tárolt eljárásokat használ, a GitHub Copilot azonosíthatja a nem biztonságos mintákat, elmagyarázhatja a lehetséges kockázatokat, és biztonságosabb alternatívákat javasolhat az adatbázis-környezet alapján. Ez a képesség különösen hasznos azoknak a fejlesztőknek, akik nem a biztonságra specializálódnak, de biztonságos kódolási eljárásokat kell követnie.
Az alábbi szakaszok a gyakori használati eseteket és példákat ismertetik arra, hogy mit kérdezhet meg a csevegés résztvevőin keresztül.
SQL-injektálás észlelése
Az SQL-injektálás az adatbázis-alkalmazások egyik leggyakoribb és legveszélyesebb biztonsági rése. A GitHub Copilot segíthet azonosítani a nem paraméterezett lekérdezéseket, a szöveg interpolációs problémákat és a dinamikus SQL helytelen használatát. A környezetnek megfelelő biztonságosabb, paraméterezett alternatívákat is javasol.
SQLAlchemy a Python-példában
I'm working with SQLAlchemy in Python for my current database `SalesLT` schema. Check the following `SQLAlchemy` query for potential security risks, such as SQL injection, over-fetching, or performance issues. If applicable, suggest improvements using parameterized queries, connection pooling, and other secure `SQL Server` practices to ensure performance and security.
query = f"SELECT * FROM SalesLT.Customer WHERE LastName = '{user_input}'"
result = engine.execute(query).fetchall()
JavaScript SQL-példa
Analyze the following JavaScript SQL query for potential security vulnerabilities. Identify risks such as SQL injection, over-fetching, and poor authentication practices. Explain why this query is insecure and provide a secure alternative.
const query = `SELECT * FROM Users WHERE Username = '${username}' AND Password = '${password}'`;
SQL-injektálási támadás szimulációja
Using my current database, simulate a SQL injection attack for the `SalesLT.uspGetCustomerOrderHistory` stored procedure and suggest fixes.
A tárolt eljárásra vonatkozó példa áttekintése
Review the stored procedure `SalesLT.uspGetCustomerOrderHistory` in my current database for potential SQL injection vulnerabilities. Explain how unparameterized or improperly validated inputs could be exploited and recommend secure coding practices.
Biztonsági problémák azonosítása – példa
Review the `SalesLT.uspGetCustomerOrderHistory_Insecure` stored procedure. Identify any potential security issues in the implementation and then provide a revised version of the stored procedure that addresses these concerns without explicitly listing security best practices.
You can use the following T-SQL to create the stored procedure:
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
Általános biztonsági javaslatok
Az SQL-injektáláson túl számos adatbázis-alkalmazás tesz elérhetővé bizalmas adatokat, vagy nem biztonságos alapértelmezett konfigurációkra támaszkodik.
A GitHub Copilot segítséget nyújthat a kapcsolatok titkosításával, a személyes adatok védelmével vagy maszkolásával, valamint a különböző fejlesztési veremek biztonságos hitelesítési és engedélyezési eljárásainak követésével.
Bizalmas adattárolási példa
Recommend secure methods for storing sensitive data in the `SalesLT.Address` table.
Személyes adatok maszkolása – példa
What are the best strategies or built-in features in my database for masking personal data in the `SalesLT.Customer` table?
Titkosítás kényszerítése az Entity Framework Core-példában
How can I configure my connection string in Entity Framework Core to enforce encryption and avoid exposing credentials?
Microsoft Entra-azonosító Node.js hitelesítési példában
In a Prisma or Node.js environment, how can I securely use Microsoft Entra ID authentication or managed identity with SQL Server instead of storing passwords?
Sql Server-beállítások ajánlása adat biztonságossá tételéhez
What SQL Server options should I enable or verify (for example, Always Encrypted, Transparent Data Encryption) to protect customer data when using object-relational mapping (ORM) frameworks like Sequelize or EF Core?
Ossza meg tapasztalatait
Az MSSQL-bővítményHez tartozó GitHub Copilot pontosításához és fejlesztéséhez használja a következő GitHub-problémasablont a visszajelzés elküldéséhez: GitHub Copilot Feedback
Visszajelzés küldésekor fontolja meg a következőket:
Tesztelt forgatókönyvek: Tudassa velünk, hogy mely területekre összpontosított, például sémalétrehozásra, lekérdezésgenerálásra, biztonságra, honosításra.
Ami jól működött: Ismertesse azokat a tapasztalatokat, amelyek zökkenőmentesnek, hasznosnak mutattak, vagy amelyek meghaladták az Ön elvárásait.
Problémák vagy hibák: Tartalmazzon bármilyen problémát, következetlenséget vagy zavaró viselkedést. A képernyőképek és a képernyőfelvételek különösen hasznosak.
Fejlesztési javaslatok: Ötletek megosztása a használhatóság javítására, a lefedettség bővítésére vagy a GitHub Copilot válaszainak javítására.
Kapcsolódó tartalom
- GitHub Copilot for MSSQL-bővítmény a Visual Studio Code-hoz
- Rövid útmutató: Csevegés és beágyazott GitHub Copilot-javaslatok használata
- Rövid útmutató: Kód létrehozása
- Rövid útmutató: A sémakezelő és a tervező használata
- Rövid útmutató: Az intelligens lekérdezésszerkesztő használata
- Rövid útmutató: Lekérdezésoptimalizáló-asszisztens
- Rövid útmutató: Az üzleti logika magyarázójának használata
- Rövid útmutató: Honosítási és formázási eszköz
- Rövid útmutató: Adatok létrehozása teszteléshez és modellezéshez
- Korlátozások és ismert problémák