Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
GitHub Copilot, geliştiricilere SQL kodu ve uygulama katmanı sorgularındaki yaygın güvenlik risklerini tanımlama ve ele alma konusunda yardımcı olur. Güçlü bir güvenlik altyapısına sahip olmayan geliştiriciler için özellikle, geliştirme sırasında pratik ve bağlama duyarlı öneriler sağlayarak SQL enjeksiyonu, aşırı derecede ifşa edilmiş veriler ve güvenli olmayan desenler gibi güvenlik açıklarını algılamaya yardımcı olabilir.
Başlayın
Bir veritabanına bağlı olduğunuzdan ve MSSQL uzantısıyla etkin bir düzenleyici penceresinin açık olduğundan emin olun. Bu bağlantı, sohbet katılımcısının @mssql veritabanı ortamınızın bağlamını anlamasına olanak tanıyarak doğru ve bağlama duyarlı öneriler sağlar. Veritabanı bağlantısı olmadan, sohbet katılımcısının anlamlı yanıtlar sağlamak için şeması veya veri bağlamı olmaz.
Aşağıdaki örneklerde, AdventureWorksLT2022 giriş sayfasından indirebileceğiniz örnek veritabanı kullanılır.
En iyi sonuçları elde etmek için tablo ve şema adlarını kendi ortamınızla eşleşecek şekilde ayarlayın.
Sohbetin ön ekini içerdiğinden @mssql emin olun. Örneğin, @mssql yazdıktan sonra sorunuzu ya da isteminizi yazın. Bu, sohbet katılımcısının SQL ile ilgili yardım istediğinizi anlamasını sağlar.
GitHub Copilot ile güvenlik risklerini algılama ve düzeltme
GitHub Copilot, geliştiricilerin yaygın güvenlik açıklarını üretime ulaşmadan önce geliştirme sürecinin başlarında algılamalarına ve düzeltmelerine yardımcı olur. İster ham SQL, ORM'ler ister saklı yordamlar kullanıyor olun, GitHub Copilot güvenli olmayan desenleri tanımlayabilir, olası riskleri açıklayabilir ve veritabanı bağlamınıza göre daha güvenli alternatifler önerebilir. Bu, özellikle güvenlik konusunda uzman olmayan ancak güvenli kodlama uygulamalarını izlemesi gereken geliştiriciler için kullanışlıdır.
Sohbet katılımcısı aracılığıyla sorabileceğiniz yaygın kullanım örnekleri ve örnekler aşağıda verilmiştir.
SQL enjeksiyonu algılama
SQL ekleme, veritabanı uygulamalarında en yaygın ve en tehlikeli güvenlik açıklarından biridir. GitHub Copilot, bağlamınıza göre uyarlanmış daha güvenli, parametreli alternatifler önerirken, parametrelenmemiş sorguları, dize ilişkilendirme sorunlarını ve dinamik SQL'in kötüye kullanımını belirlemeye yardımcı olabilir.
Python'da SQLAlchemy örneği
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 örneği
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 enjeksiyon saldırısı simülasyonu
Using my current database, simulate a SQL injection attack for the `SalesLT.uspGetCustomerOrderHistory` stored procedure and suggest fixes.
Saklı yordam örneğini gözden geçirin
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.
Güvenlik sorunlarını tanımlama örneği
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
Genel güvenlik önerileri
SQL eklemenin ötesinde, birçok veritabanı uygulaması hassas verileri kullanıma sunar veya varsayılan olarak güvenli olmayan yapılandırmalar kullanır. GitHub Copilot, bağlantıları şifrelemek, kişisel verileri maskelemek veya korumak ve birden çok geliştirme yığınında güvenli kimlik doğrulaması ve yetkilendirme en iyi yöntemleriyle uyumlu hale getirme konusunda rehberlik sağlar.
Hassas veri depolama örneği
Recommend secure methods for storing sensitive data in the `SalesLT.Address` table.
Kişisel verileri maskeleme örneği
What are the best strategies or built-in features in my database for masking personal data in the `SalesLT.Customer` table?
Entity Framework Core'da şifrelemeyi zorunlu kılma örneği
How can I configure my connection string in Entity Framework Core to enforce encryption and avoid exposing credentials?
Node.js kimlik doğrulaması örneğinde Microsoft Entra Id
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?
Veri güvenliğini sağlamak için SQL Server seçeneklerini önerme örneği
What SQL Server options should I enable or verify (for example, Always Encrypted, Transparent Data Encryption) to protect customer data when using ORMs like Sequelize or EF Core?
Deneyiminizi paylaşma
MSSQL uzantısı için GitHub Copilot'ı geliştirmemize ve geliştirmemize yardımcı olmak için aşağıdaki GitHub sorun şablonunu kullanarak geri bildiriminizi gönderin: GitHub Copilot Geri Bildirimi
Geri bildirim gönderirken şunları dahil etmeyi göz önünde bulundurun:
Test edilen senaryolar : Şema oluşturma, sorgu oluşturma, güvenlik, yerelleştirme gibi hangi alanlara odaklandığınız konusunda bize bilgi verin.
Başarılı Olanlar - Sorunsuz, yararlı veya beklentilerinizi aşan deneyimlerinizi açıklayın.
Sorunlar veya hatalar : Tüm sorunları, tutarsızlıkları veya kafa karıştırıcı davranışları içerir. Ekran görüntüleri veya ekran kayıtları özellikle yararlıdır.
İyileştirme önerileri : Kullanılabilirliği artırma, kapsamı genişletme veya GitHub Copilot'un yanıtlarını geliştirmeyle ilgili fikirleri paylaşın.
İlgili içerik
- Visual Studio Code için MSSQL uzantısı için GitHub Copilot
- Hızlı Başlangıç: Sohbet ve satır içi GitHub Copilot önerilerini kullanma
- Hızlı Başlangıç: Kod oluşturma
- Hızlı Başlangıç: Şema gezginini ve tasarımcıyı kullanma
- Hızlı Başlangıç: Akıllı sorgu oluşturucuyu kullanma
- Hızlı Başlangıç: Sorgu iyileştirici yardımcısı
- Hızlı Başlangıç: İş mantığı açıklayıcısını kullanma
- Hızlı Başlangıç: Yerelleştirme ve biçimlendirme yardımcısı
- Hızlı Başlangıç: Test ve mock için veri oluşturma
- Sınırlamalar ve bilinen sorunlar