Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
GitHub Copilot membantu pengembang dalam mengidentifikasi dan mengatasi risiko keamanan umum dalam kode SQL dan kueri lapisan aplikasi. Ini dapat membantu mendeteksi kerentanan seperti injeksi SQL, data yang terlalu eksposisi, dan pola yang tidak aman, terutama untuk pengembang tanpa latar belakang keamanan yang kuat, dengan memberikan rekomendasi praktis yang sadar konteks selama pengembangan.
Mulai sekarang!
Pastikan Anda tersambung ke database dan membuka jendela editor aktif dengan ekstensi MSSQL. Koneksi ini memungkinkan @mssql peserta obrolan untuk memahami konteks lingkungan database Anda, memungkinkan saran yang akurat dan sadar konteks. Tanpa koneksi database, peserta obrolan tidak akan memiliki skema atau konteks data untuk memberikan respons yang bermakna.
Contoh berikut menggunakan AdventureWorksLT2022 database sampel, yang dapat Anda unduh dari beranda Sampel Microsoft SQL Server dan Proyek Komunitas .
Untuk hasil terbaik, sesuaikan nama tabel dan skema agar sesuai dengan lingkungan Anda sendiri.
Pastikan obrolan menyertakan awalan @mssql . Misalnya, ketik @mssql diikuti dengan pertanyaan atau perintah Anda. Ini memastikan bahwa peserta obrolan memahami Bahwa Anda meminta bantuan terkait SQL.
Mendeteksi dan memperbaiki risiko keamanan dengan GitHub Copilot
GitHub Copilot membantu pengembang mendeteksi dan memperbaiki kerentanan keamanan umum di awal proses pengembangan, sebelum mencapai produksi. Baik Anda menggunakan SQL mentah, ORM, atau prosedur tersimpan, GitHub Copilot dapat mengidentifikasi pola yang tidak aman, menjelaskan potensi risiko, dan menyarankan alternatif yang lebih aman berdasarkan konteks database Anda. Ini sangat berguna bagi pengembang yang tidak mengkhususkan keamanan tetapi perlu mengikuti praktik pengodean yang aman.
Berikut adalah kasus penggunaan umum dan contoh apa yang dapat Anda tanyakan melalui peserta obrolan.
Deteksi injeksi SQL
Injeksi SQL adalah salah satu kerentanan keamanan yang paling umum dan berbahaya dalam aplikasi database. GitHub Copilot dapat membantu mengidentifikasi kueri yang tidak diparameterkan, masalah interpolasi string, dan penyalahgunaan SQL dinamis, sambil merekomendasikan alternatif parameter yang lebih aman dan disesuaikan dengan konteks Anda.
SQLAlchemy dalam contoh Python
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()
Contoh JavaScript SQL
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}'`;
Simulasi serangan injeksi SQL
Using my current database, simulate a SQL injection attack for the `SalesLT.uspGetCustomerOrderHistory` stored procedure and suggest fixes.
Tinjau contoh prosedur tersimpan
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.
Mengidentifikasi contoh masalah keamanan
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
Saran keamanan umum
Di luar injeksi SQL, banyak aplikasi database mengekspos data sensitif atau menggunakan konfigurasi yang tidak aman secara default. GitHub Copilot menyediakan panduan untuk mengenkripsi koneksi, menutupi atau melindungi data pribadi, dan menyelaraskan dengan praktik terbaik autentikasi dan otorisasi yang aman di beberapa tumpukan pengembangan.
Contoh penyimpanan data sensitif
Recommend secure methods for storing sensitive data in the `SalesLT.Address` table.
Contoh pemadanan data pribadi
What are the best strategies or built-in features in my database for masking personal data in the `SalesLT.Customer` table?
Menerapkan enkripsi dalam contoh Entity Framework Core
How can I configure my connection string in Entity Framework Core to enforce encryption and avoid exposing credentials?
ID Microsoft Entra dalam contoh autentikasi Node.js
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?
Merekomendasikan opsi SQL Server untuk mengamankan contoh data
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?
Membagikan pengalaman Anda
Untuk membantu kami memperbaiki dan meningkatkan GitHub Copilot untuk ekstensi MSSQL, gunakan templat masalah GitHub berikut untuk mengirimkan umpan balik Anda: GitHub Copilot Feedback
Saat mengirimkan umpan balik, pertimbangkan untuk menyertakan:
Skenario yang diuji - Beri tahu kami area mana yang Anda fokuskan, misalnya, pembuatan skema, pembuatan kueri, keamanan, pelokalan.
Apa yang bekerja dengan baik - Menjelaskan pengalaman apa pun yang terasa lancar, membantu, atau melebihi harapan Anda.
Masalah atau bug - Sertakan masalah, inkonsistensi, atau perilaku yang membingungkan. Cuplikan layar atau rekaman layar sangat membantu.
Saran untuk perbaikan – Bagikan ide untuk meningkatkan kegunaan, memperluas cakupan, atau meningkatkan respons GitHub Copilot.
Konten terkait
- GitHub Copilot untuk ekstensi MSSQL untuk Visual Studio Code
- Panduan Cepat: Menggunakan chat dan saran GitHub Copilot terintegrasi
- Mulai cepat: Membuat kode
- Mulai cepat: Menggunakan penjelajah dan perancang skema
- Panduan Cepat: Menggunakan Pembuat Kueri Pintar
- Panduan Cepat: Asisten Pengoptimal Kueri
- Mulai cepat: Menggunakan penjelas logika bisnis
- Mulai cepat: Pembantu pelokalan dan pemformatan
- Mulai cepat: Menghasilkan data untuk pengujian dan tiruan
- Batasan dan masalah umum