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.
oleh Scott Mitchell
Aplikasi ASP.NET biasanya menyimpan informasi konfigurasi dalam file Web.config. Beberapa informasi ini sensitif dan menjamin perlindungan. Secara default file ini tidak akan dilayani ke pengunjung situs Web, tetapi administrator atau peretas mungkin mendapatkan akses ke sistem file server Web dan melihat isi file. Dalam tutorial ini kita mempelajari bahwa ASP.NET 2.0 memungkinkan kita untuk melindungi informasi sensitif dengan mengenkripsi bagian dari file Web.config.
Pendahuluan
Informasi konfigurasi untuk aplikasi ASP.NET umumnya disimpan dalam file XML bernama Web.config
. Selama tutorial ini, kami telah memperbarui Web.config
beberapa kali. Saat membuat Northwind
Typed DataSet dalam tutorial pertama, misalnya, informasi string koneksi secara otomatis ditambahkan ke Web.config
di bagian <connectionStrings>
. Kemudian, dalam tutorial Halaman Master dan Navigasi Situs , kami memperbarui Web.config
secara manual , menambahkan elemen yang <pages>
menunjukkan bahwa semua halaman ASP.NET dalam proyek kami harus menggunakan DataWebControls
Tema.
Karena Web.config
mungkin berisi data sensitif seperti string koneksi, penting bahwa konten Web.config
disimpan aman dan disembunyikan dari pemirsa yang tidak sah. Secara default, permintaan HTTP apa pun ke file dengan .config
ekstensi ditangani oleh mesin ASP.NET, yang mengembalikan pesan Jenis halaman ini tidak dilayani yang ditunjukkan pada Gambar 1. Ini berarti bahwa pengunjung tidak dapat melihat konten file Anda Web.config
hanya dengan memasukkan http://www.YourServer.com/Web.config ke bilah Alamat browser mereka.
Gambar 1: Mengunjungi Web.config
melalui browser mengembalikan pesan 'Halaman jenis ini tidak dilayani' (Klik untuk melihat gambar ukuran penuh)
Tetapi bagaimana jika penyerang dapat menemukan beberapa eksploitasi lain yang memungkinkannya untuk melihat konten file Anda Web.config
? Apa yang dapat dilakukan penyerang dengan informasi ini, dan langkah-langkah apa yang dapat diambil untuk melindungi informasi sensitif lebih lanjut dalam Web.config
? Untungnya, sebagian besar bagian di Web.config
tidak berisi informasi sensitif. Bahaya apa yang dapat dilakukan penyerang jika mereka mengetahui nama Tema default yang digunakan oleh halaman ASP.NET Anda?
Namun, bagian tertentu Web.config
berisi informasi sensitif yang mungkin mencakup string koneksi, nama pengguna, kata sandi, nama server, kunci enkripsi, dan sebagainya. Informasi ini biasanya ditemukan di bagian berikut Web.config
:
<appSettings>
<connectionStrings>
<identity>
<sessionState>
Dalam tutorial ini kita akan melihat teknik untuk melindungi informasi konfigurasi sensitif tersebut. Seperti yang akan kita lihat, .NET Framework versi 2.0 menyertakan sistem konfigurasi yang dilindungi yang membuat mengenkripsi dan mendekripsi bagian konfigurasi yang dipilih secara terprogram menjadi mudah.
Catatan
Tutorial ini menyimpulkan dengan melihat rekomendasi Microsoft untuk menyambungkan ke database dari aplikasi ASP.NET. Selain mengenkripsi string koneksi, Anda dapat membantu mengeraskan sistem Anda dengan memastikan bahwa Anda terhubung ke database dengan cara yang aman.
Langkah 1: Menjelajahi Opsi Konfigurasi Terproteksi ASP.NET 2.0 s
ASP.NET 2.0 mencakup sistem konfigurasi yang dilindungi untuk mengenkripsi dan mendekripsi informasi konfigurasi. Ini termasuk metode dalam .NET Framework yang dapat digunakan untuk mengenkripsi atau mendekripsi informasi konfigurasi secara terprogram. Sistem konfigurasi yang dilindungi menggunakan model penyedia yang memungkinkan pengembang untuk memilih implementasi kriptografi apa yang digunakan.
.NET Framework dikirim dengan dua penyedia konfigurasi yang dilindungi:
-
RSAProtectedConfigurationProvider
- menggunakan algoritma RSA asimetris untuk enkripsi dan dekripsi. -
DPAPIProtectedConfigurationProvider
- menggunakan Windows Data Protection API (DPAPI) untuk enkripsi dan dekripsi.
Karena sistem konfigurasi yang dilindungi mengimplementasikan pola desain penyedia, dimungkinkan untuk membuat penyedia konfigurasi yang dilindungi Anda sendiri dan menyambungkannya ke aplikasi Anda. Lihat Menerapkan Penyedia Konfigurasi Terproteksi untuk informasi selengkapnya tentang proses ini.
Penyedia RSA dan DPAPI menggunakan kunci untuk rutinitas enkripsi dan dekripsi mereka, dan kunci ini dapat disimpan di tingkat komputer atau pengguna. Kunci tingkat mesin sangat ideal untuk skenario di mana aplikasi web berjalan di server khususnya sendiri atau jika ada beberapa aplikasi di server yang perlu berbagi informasi terenkripsi. Kunci tingkat pengguna adalah opsi yang lebih aman di lingkungan hosting bersama di mana aplikasi lain di server yang sama seharusnya tidak dapat mendekripsi bagian konfigurasi yang dilindungi aplikasi Anda.
Dalam tutorial ini, contoh kami akan menggunakan penyedia DPAPI dan kunci tingkat mesin. Secara khusus, kita akan melihat mengenkripsi <connectionStrings>
bagian di Web.config
, meskipun sistem konfigurasi yang dilindungi dapat digunakan untuk mengenkripsi sebagian besar bagian mana pun Web.config
. Untuk informasi tentang menggunakan kunci tingkat pengguna atau menggunakan penyedia RSA, lihat sumber daya di bagian Bacaan Lebih Lanjut di akhir tutorial ini.
Catatan
Penyedia RSAProtectedConfigurationProvider
dan DPAPIProtectedConfigurationProvider
terdaftar dalam machine.config
file dengan nama RsaProtectedConfigurationProvider
penyedia dan DataProtectionConfigurationProvider
, masing-masing. Saat mengenkripsi atau mendekripsi informasi konfigurasi, kita perlu memberikan nama penyedia yang sesuai (RsaProtectedConfigurationProvider
atau DataProtectionConfigurationProvider
) daripada nama jenis aktual (RSAProtectedConfigurationProvider
dan DPAPIProtectedConfigurationProvider
). Anda dapat menemukan machine.config
file di $WINDOWS$\Microsoft.NET\Framework\version\CONFIG
folder .
Langkah 2: Mengenkripsi dan Mendekripsi Bagian Konfigurasi Secara Terprogram
Dengan beberapa baris kode, kita dapat mengenkripsi atau mendekripsi bagian konfigurasi tertentu menggunakan penyedia tertentu. Kode, seperti yang akan kita lihat segera, hanya perlu mereferensikan bagian konfigurasi yang sesuai secara terprogram, memanggil metode atau ProtectSection
, UnprotectSection
lalu memanggil Save
metode untuk mempertahankan perubahan. Selain itu, .NET Framework menyertakan utilitas baris perintah bermanfaat yang dapat mengenkripsi dan mendekripsi informasi konfigurasi. Kami akan menjelajahi utilitas baris perintah ini di Langkah 3.
Untuk mengilustrasikan melindungi informasi konfigurasi secara terprogram, mari kita buat halaman ASP.NET yang menyertakan tombol untuk mengenkripsi dan mendekripsi <connectionStrings>
bagian di Web.config
.
Mulailah dengan membuka EncryptingConfigSections.aspx
halaman di AdvancedDAL
folder. Seret kontrol TextBox dari Kotak Alat ke Perancang, atur propertinya ID
ke WebConfigContents
, propertinya TextMode
ke MultiLine
, dan propertinya Width
Rows
masing-masing menjadi 95% dan 15. Kontrol TextBox ini akan menampilkan konten Web.config
yang memungkinkan kita untuk dengan cepat melihat apakah konten dienkripsi atau tidak. Tentu saja, dalam aplikasi nyata Anda tidak akan pernah ingin menampilkan konten Web.config
.
Di bawah Kotak Teks, tambahkan dua kontrol Tombol bernama EncryptConnStrings
dan DecryptConnStrings
. Atur properti Teks mereka ke Enkripsi String Koneksi dan Dekripsi String Koneksi .
Pada titik ini layar Anda akan terlihat mirip dengan Gambar 2.
Gambar 2: Tambahkan TextBox dan Kontrol Web Dua Tombol ke Halaman (Klik untuk melihat gambar ukuran penuh)
Selanjutnya, kita perlu menulis kode yang memuat dan menampilkan konten Web.config
di WebConfigContents
TextBox saat halaman pertama kali dimuat. Tambahkan kode berikut ke halaman s code-behind class. Kode ini menambahkan metode bernama DisplayWebConfig
dan memanggilnya dari penanganan Page_Load
aktivitas ketika Page.IsPostBack
adalah false
:
protected void Page_Load(object sender, EventArgs e)
{
// On the first page visit, call DisplayWebConfig method
if (!Page.IsPostBack)
DisplayWebConfig();
}
private void DisplayWebConfig()
{
// Reads in the contents of Web.config and displays them in the TextBox
StreamReader webConfigStream =
File.OpenText(Path.Combine(Request.PhysicalApplicationPath, "Web.config"));
string configContents = webConfigStream.ReadToEnd();
webConfigStream.Close();
WebConfigContents.Text = configContents;
}
Metode ini DisplayWebConfig
menggunakan File
kelas untuk membuka file aplikasi Web.config
, StreamReader
kelas untuk membaca kontennya ke dalam string, dan Path
kelas untuk menghasilkan jalur fisik ke Web.config
file. Ketiga kelas ini semuanya ditemukan di System.IO
namespace. Akibatnya, Anda perlu menambahkan using
System.IO
pernyataan ke bagian atas kelas code-behind atau, atau, awali nama kelas ini dengan System.IO.
.
Selanjutnya, kita perlu menambahkan penanganan aktivitas untuk dua peristiwa Kontrol Click
tombol dan menambahkan kode yang diperlukan untuk mengenkripsi dan mendekripsi <connectionStrings>
bagian menggunakan kunci tingkat komputer dengan penyedia DPAPI. Dari Perancang, klik dua kali setiap Tombol untuk menambahkan Click
penanganan aktivitas di kelas code-behind lalu tambahkan kode berikut:
protected void EncryptConnStrings_Click(object sender, EventArgs e)
{
// Get configuration information about Web.config
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
// Let's work with the <connectionStrings> section
ConfigurationSection connectionStrings = config.GetSection("connectionStrings");
if (connectionStrings != null)
// Only encrypt the section if it is not already protected
if (!connectionStrings.SectionInformation.IsProtected)
{
// Encrypt the <connectionStrings> section using the
// DataProtectionConfigurationProvider provider
connectionStrings.SectionInformation.ProtectSection(
"DataProtectionConfigurationProvider");
config.Save();
// Refresh the Web.config display
DisplayWebConfig();
}
}
protected void DecryptConnStrings_Click(object sender, EventArgs e)
{
// Get configuration information about Web.config
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
// Let's work with the <connectionStrings> section
ConfigurationSection connectionStrings =
config.GetSection("connectionStrings");
if (connectionStrings != null)
// Only decrypt the section if it is protected
if (connectionStrings.SectionInformation.IsProtected)
{
// Decrypt the <connectionStrings> section
connectionStrings.SectionInformation.UnprotectSection();
config.Save();
// Refresh the Web.config display
DisplayWebConfig();
}
}
Kode yang digunakan dalam dua penanganan aktivitas hampir identik. Keduanya memulai dengan mendapatkan informasi tentang file aplikasi Web.config
saat ini melalui kelas WebConfigurationManager
metode OpenWebConfiguration
. Metode ini mengembalikan file konfigurasi web untuk jalur virtual yang ditentukan. Selanjutnya, bagian Web.config
file s <connectionStrings>
diakses melalui Configuration
metode kelas sGetSection(sectionName)
, yang mengembalikan ConfigurationSection
objek.
Objek ConfigurationSection
menyertakan SectionInformation
properti yang menyediakan informasi dan fungsionalitas tambahan mengenai bagian konfigurasi. Seperti yang ditunjukkan oleh kode di atas, kita dapat menentukan apakah bagian konfigurasi dienkripsi dengan memeriksa SectionInformation
properti properti s IsProtected
. Selain itu, bagian dapat dienkripsi atau didekripsi melalui SectionInformation
properti dan ProtectSection(provider)
UnprotectSection
metode.
Metode ProtectSection(provider)
ini menerima sebagai input string yang menentukan nama penyedia konfigurasi yang dilindungi untuk digunakan saat mengenkripsi. Di handler EncryptConnString
peristiwa Tombol, kami meneruskan DataProtectionConfigurationProvider ke dalam ProtectSection(provider)
metode sehingga penyedia DPAPI digunakan. Metode ini UnprotectSection
dapat menentukan penyedia yang digunakan untuk mengenkripsi bagian konfigurasi dan oleh karena itu tidak memerlukan parameter input apa pun.
Setelah memanggil ProtectSection(provider)
metode atau UnprotectSection
, Anda harus memanggil Configuration
metode objek s Save
untuk mempertahankan perubahan. Setelah informasi konfigurasi dienkripsi atau didekripsi dan perubahan disimpan, kami memanggil DisplayWebConfig
untuk memuat konten yang diperbarui Web.config
ke dalam kontrol TextBox.
Setelah Anda memasukkan kode di atas, uji dengan mengunjungi EncryptingConfigSections.aspx
halaman melalui browser. Anda awalnya akan melihat halaman yang mencantumkan konten Web.config
dengan <connectionStrings>
bagian yang ditampilkan dalam teks biasa (lihat Gambar 3).
Gambar 3: Tambahkan TextBox dan Kontrol Web Dua Tombol ke Halaman (Klik untuk melihat gambar ukuran penuh)
Sekarang klik tombol Enkripsi String Koneksi. Jika validasi permintaan diaktifkan, markup yang diposting kembali dari WebConfigContents
TextBox akan menghasilkan HttpRequestValidationException
, yang menampilkan pesan, Nilai yang berpotensi berbahaya Request.Form
terdeteksi dari klien. Validasi permintaan, yang diaktifkan secara default di ASP.NET 2.0, melarang postback yang menyertakan HTML yang tidak dikodekan dan dirancang untuk membantu mencegah serangan injeksi skrip. Pemeriksaan ini dapat dinonaktifkan di tingkat halaman atau aplikasi. Untuk menonaktifkannya untuk halaman ini, atur pengaturan ke ValidateRequest
false
@Page
dalam direktif. Direktif @Page
ditemukan di bagian atas markup deklaratif halaman.
<%@ Page ValidateRequest="False" ... %>
Untuk informasi selengkapnya tentang validasi permintaan, tujuannya, cara menonaktifkannya di tingkat halaman dan aplikasi, serta cara mengodekan markup HTML, lihat Validasi Permintaan - Mencegah Serangan Skrip.
Setelah menonaktifkan validasi permintaan untuk halaman, coba klik tombol Enkripsi String Koneksi lagi. Pada postback, file konfigurasi akan diakses dan bagiannya <connectionStrings>
dienkripsi menggunakan penyedia DPAPI. TextBox kemudian diperbarui untuk menampilkan konten baru Web.config
. Seperti yang ditunjukkan <connectionStrings>
oleh Gambar 4, informasi sekarang dienkripsi.
Mengklik Tombol untuk Mengenkripsi String Koneksi akan Mengenkripsi Bagian <connectionString>.
Gambar 4: Mengklik tombol Enkripsi Rangkaian Koneksi mengenkripsi bagian <connectionString>
(Klik untuk melihat gambar ukuran penuh)
Bagian terenkripsi <connectionStrings>
yang dihasilkan di komputer saya mengikuti, meskipun beberapa konten dalam <CipherData>
elemen telah dihapus untuk brevity:
<connectionStrings
configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue></CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
Catatan
Elemen <connectionStrings>
menentukan penyedia yang digunakan untuk melakukan enkripsi (DataProtectionConfigurationProvider
). Informasi ini digunakan oleh UnprotectSection
metode ketika tombol Dekripsi String Koneksi diklik.
Ketika informasi string koneksi diakses dari Web.config
- baik berdasarkan kode yang kami tulis, dari kontrol SqlDataSource, atau kode yang dihasilkan secara otomatis dari TableAdapters di Set Data Yang Diketik - kode tersebut secara otomatis didekripsi. Singkatnya, kita tidak perlu menambahkan kode atau logika tambahan untuk mendekripsi bagian terenkripsi <connectionString>
. Untuk menunjukkan hal ini, kunjungi salah satu tutorial sebelumnya saat ini, seperti tutorial Tampilan Sederhana dari bagian Pelaporan Dasar (~/BasicReporting/SimpleDisplay.aspx
). Seperti yang ditunjukkan Gambar 5, tutorial berfungsi persis seperti yang kita harapkan, menunjukkan bahwa informasi string koneksi terenkripsi sedang didekripsi secara otomatis oleh halaman ASP.NET.
Gambar 5: Lapisan Akses Data Secara Otomatis Mendekripsi Informasi String Koneksi (Klik untuk melihat gambar ukuran penuh)
Untuk mengembalikan bagian <connectionStrings>
kembali ke representasi teks biasanya, klik tombol Dekripsi String Koneksi. Pada postback, Anda akan melihat string koneksi dalam Web.config
teks biasa. Pada titik ini layar Anda akan terlihat seperti saat pertama kali mengunjungi halaman ini (lihat di Gambar 3).
Langkah 3: Mengenkripsi Bagian Konfigurasi Menggunakan aspnet_regiis.exe
.NET Framework menyertakan berbagai alat baris perintah dalam $WINDOWS$\Microsoft.NET\Framework\version\
folder. Dalam tutorial Menggunakan Dependensi Cache SQL , misalnya, kita melihat menggunakan aspnet_regsql.exe
alat baris perintah untuk menambahkan infrastruktur yang diperlukan untuk dependensi cache SQL. Alat baris perintah lain yang berguna dalam folder ini adalah alat Pendaftaran IIS ASP.NET (aspnet_regiis.exe
). Seperti namanya, alat Pendaftaran IIS ASP.NET terutama digunakan untuk mendaftarkan aplikasi ASP.NET 2.0 dengan server Web kelas profesional Microsoft, IIS. Selain fitur terkait IIS-nya, alat Pendaftaran IIS ASP.NET juga dapat digunakan untuk mengenkripsi atau mendekripsi bagian konfigurasi yang ditentukan di Web.config
.
Pernyataan berikut menunjukkan sintaks umum yang digunakan untuk mengenkripsi bagian konfigurasi dengan aspnet_regiis.exe
alat baris perintah:
aspnet_regiis.exe -pef section physical_directory -prov provider
bagian adalah bagian konfigurasi untuk mengenkripsi (seperti connectionStrings ), physical_directory adalah jalur fisik lengkap ke direktori akar aplikasi web, dan penyedia adalah nama penyedia konfigurasi yang dilindungi untuk digunakan (seperti DataProtectionConfigurationProvider ). Atau, jika aplikasi web terdaftar di IIS, Anda dapat memasukkan jalur virtual alih-alih jalur fisik menggunakan sintaks berikut:
aspnet_regiis.exe -pe section -app virtual_directory -prov provider
Contoh berikut aspnet_regiis.exe
mengenkripsi bagian <connectionStrings>
menggunakan penyedia DPAPI dengan kunci tingkat komputer:
aspnet_regiis.exe -pef
"connectionStrings" "C:\Websites\ASPNET_Data_Tutorial_73_CS"
-prov "DataProtectionConfigurationProvider"
Demikian pula, aspnet_regiis.exe
alat baris perintah dapat digunakan untuk mendekripsi bagian konfigurasi. Alih-alih menggunakan -pef
sakelar, gunakan -pdf
(atau alih-alih -pe
, gunakan -pd
). Selain itu, perhatikan bahwa nama penyedia tidak diperlukan saat mendekripsi.
aspnet_regiis.exe -pdf section physical_directory
-- or --
aspnet_regiis.exe -pd section -app virtual_directory
Catatan
Karena kami menggunakan penyedia DPAPI, yang menggunakan kunci khusus untuk komputer, Anda harus menjalankan aspnet_regiis.exe
dari komputer yang sama tempat halaman web dilayani. Misalnya, jika Anda menjalankan program baris perintah ini dari komputer pengembangan lokal Anda dan kemudian mengunggah file Web.config terenkripsi ke server produksi, server produksi tidak akan dapat mendekripsi informasi string koneksi karena dienkripsi menggunakan kunci khusus untuk komputer pengembangan Anda. Penyedia RSA tidak memiliki batasan ini karena dimungkinkan untuk mengekspor kunci RSA ke komputer lain.
Memahami Opsi Autentikasi Database
Sebelum aplikasi apa pun dapat mengeluarkan SELECT
, INSERT
, UPDATE
, atau DELETE
kueri ke database Microsoft SQL Server, database terlebih dahulu harus mengidentifikasi pemohon. Proses ini dikenal sebagai autentikasi dan SQL Server menyediakan dua metode autentikasi:
-
Autentikasi Windows - proses di mana aplikasi berjalan digunakan untuk berkomunikasi dengan database. Saat menjalankan aplikasi ASP.NET melalui Visual Studio 2005 s ASP.NET Development Server, aplikasi ASP.NET mengasumsikan identitas pengguna yang saat ini masuk. Untuk aplikasi ASP.NET di Microsoft Internet Information Server (IIS), aplikasi ASP.NET biasanya mengasumsikan identitas
domainName``\MachineName
ataudomainName``\NETWORK SERVICE
, meskipun ini dapat disesuaikan. - Autentikasi SQL - ID pengguna dan nilai kata sandi disediakan sebagai kredensial untuk autentikasi. Dengan autentikasi SQL, ID pengguna dan kata sandi disediakan di string koneksi.
Autentikasi Windows lebih disukai daripada autentikasi SQL karena lebih aman. Dengan autentikasi Windows, string koneksi bebas dari nama pengguna dan kata sandi dan jika server web dan server database berada di dua komputer yang berbeda, kredensial tidak dikirim melalui jaringan dalam teks biasa. Namun, dengan autentikasi SQL, kredensial autentikasi dikodekan secara permanen di string koneksi dan dikirimkan dari server web ke server database dalam teks biasa.
Tutorial ini telah menggunakan autentikasi Windows. Anda dapat mengetahui mode autentikasi apa yang digunakan dengan memeriksa string koneksi. String koneksi dalam Web.config
untuk tutorial kami telah:
Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\NORTHWND.MDF; Integrated Security=True; User Instance=True
Integrated Security=True dan kurangnya nama pengguna dan kata sandi menunjukkan bahwa autentikasi Windows sedang digunakan. Dalam beberapa string koneksi istilah Koneksi Tepercaya=Ya atau Keamanan Terpadu=SSPI digunakan alih-alih Integrated Security=True, tetapi ketiganya menunjukkan penggunaan autentikasi Windows.
Contoh berikut menunjukkan string koneksi yang menggunakan autentikasi SQL.
$CREDENTIAL_PLACEHOLDER$
adalah tempat penampung untuk pasangan kunci-nilai kata sandi. Perhatikan bahwa kredensial disematkan dalam string koneksi:
Server=serverName; Database=Northwind; uid=userID; $CREDENTIAL_PLACEHOLDER$
Bayangkan bahwa penyerang dapat melihat file aplikasi Web.config
Anda. Jika Anda menggunakan autentikasi SQL untuk menyambungkan ke database yang dapat diakses melalui Internet, penyerang dapat menggunakan string koneksi ini untuk menyambungkan ke database Anda melalui SQL Management Studio atau dari halaman ASP.NET di situs web mereka sendiri. Untuk membantu mengurangi ancaman ini, enkripsi informasi string koneksi dalam Web.config
menggunakan sistem konfigurasi yang dilindungi.
Catatan
Untuk informasi selengkapnya tentang berbagai jenis autentikasi yang tersedia di SQL Server, lihat Membangun Aplikasi ASP.NET Aman: Autentikasi, Otorisasi, dan Komunikasi Aman. Untuk contoh string koneksi lebih lanjut yang mengilustrasikan perbedaan antara sintaks autentikasi Windows dan SQL, lihat ConnectionStrings.com.
Ringkasan
Secara default, file dengan .config
ekstensi dalam aplikasi ASP.NET tidak dapat diakses melalui browser. Jenis file ini tidak dikembalikan karena mungkin berisi informasi sensitif, seperti string koneksi database, nama pengguna dan kata sandi, dan sebagainya. Sistem konfigurasi yang dilindungi di .NET 2.0 membantu melindungi informasi sensitif lebih lanjut dengan memungkinkan bagian konfigurasi tertentu dienkripsi. Ada dua penyedia konfigurasi terlindungi bawaan: yang menggunakan algoritma RSA dan yang menggunakan Windows Data Protection API (DPAPI).
Dalam tutorial ini kita melihat cara mengenkripsi dan mendekripsi pengaturan konfigurasi menggunakan penyedia DPAPI. Ini dapat dicapai baik secara terprogram, seperti yang kita lihat di Langkah 2, serta melalui aspnet_regiis.exe
alat baris perintah, yang tercakup dalam Langkah 3. Untuk informasi selengkapnya tentang menggunakan kunci tingkat pengguna atau menggunakan penyedia RSA, lihat sumber daya di bagian Baca Lebih Lanjut.
Selamat Pemrograman!
Bacaan lebih lanjut
Untuk informasi selengkapnya tentang topik yang dibahas dalam tutorial ini, lihat sumber daya berikut:
- Membangun Aplikasi ASP.NET Aman: Autentikasi, Otorisasi, dan Komunikasi Aman
- Mengenkripsi Informasi Konfigurasi di Aplikasi ASP.NET 2.0
-
Mengenkripsi
Web.config
Nilai dalam ASP.NET 2.0 - Cara: Mengenkripsi Bagian Konfigurasi di ASP.NET 2.0 Menggunakan DPAPI
- Cara: Mengenkripsi Bagian Konfigurasi di ASP.NET 2.0 Menggunakan RSA
- API Konfigurasi di .NET 2.0
- Perlindungan Data Windows
Tentang Penulis
Scott Mitchell, penulis tujuh buku ASP/ASP.NET dan pendiri 4GuysFromRolla.com, telah bekerja sama dengan teknologi Microsoft Web sejak 1998. Scott bekerja sebagai konsultan, pelatih, dan penulis independen. Buku terbarunya adalah Sams Teach Yourself ASP.NET 2.0 dalam 24 Jam. Dia dapat dijangkau di mitchell@4GuysFromRolla.com.
Terima kasih khusus untuk
Seri tutorial ini ditinjau oleh banyak peninjau yang bermanfaat. Peninjau utama untuk tutorial ini adalah Teresa Murphy dan Randy Schmidt. Tertarik untuk meninjau artikel MSDN saya yang akan datang? Jika demikian, hubungi saya di mitchell@4GuysFromRolla.com.