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ştiricilerin SQL kodu ve uygulama katmanı sorgularındaki yaygın güvenlik risklerini tanımlamalarına ve ele alınmasına yardımcı olur. SQL enjeksiyonu, aşırı ifşa edilmiş veriler ve güvenli olmayan desenler gibi güvenlik açıklarını algılar. Güçlü bir güvenlik geçmişi olmayan geliştiriciler geliştirme sırasında pratik, bağlama duyarlı öneriler almak için GitHub Copilot'u kullanabilir.
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. Bağlandığınızda, sohbet katılımcısı @mssql veritabanı ortamınızın bağlamını anlar ve doğru, bağlama duyarlı öneriler verebilir. Bir veritabanına bağlanmıyorsanız, sohbet katılımcısının anlamlı yanıtlar sağlamak için şeması veya veri bağlamı yoktur.
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 ön ek, 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, nesne-ilişkisel eşleme (ORM) çerçeveleri 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 özellik özellikle güvenlik konusunda uzman olmayan ancak güvenli kodlama uygulamalarını izlemesi gereken geliştiriciler için kullanışlıdır.
Aşağıdaki bölümlerde, sohbet katılımcısı aracılığıyla sorabileceğiniz yaygın kullanım örnekleri ve örnekler açıklanmaktadır.
SQL enjeksiyonu algılama
SQL ekleme, veritabanı uygulamalarında en yaygın ve en tehlikeli güvenlik açıklarından biridir. GitHub Copilot, parametrelenmemiş sorguları, dize ilişkilendirme sorunlarını ve dinamik SQL'in kötüye kullanımını belirlemenize yardımcı olabilir. Ayrıca, bağlamınıza uygun daha güvenli, parametreli alternatifler de önerir.
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 güvenli olmayan varsayılan yapılandırmaları kullanır.
GitHub Copilot, bağlantıları şifreleme, kişisel verileri koruma veya maskeleme konusunda rehberlik sağlayarak ve çeşitli geliştirme yığınlarında güvenli kimlik doğrulaması ve yetkilendirme uygulamalarını izleyerek yardımcı olabilir.
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 object-relational mapping (ORM) frameworks 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 odaklandığınız alanları bize bildirin.
İyi çalışan şeyler: Sorunsuz, yararlı veya beklentilerinizi aşan deneyimleri açıklayın.
Sorunlar veya hatalar: Tüm sorunları, tutarsızlıkları veya kafa karıştırıcı davranışları dahil edin. Ekran görüntüleri veya ekran kayıtları özellikle yararlıdır.
İyileştirme önerileri: Kullanılabilirliği geliştirmeye, kapsamı genişletmeye veya GitHub Copilot'un yanıtlarını geliştirmeye yönelik 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