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.
Gambaran Umum
Elemen <fileExtensions>
berisi kumpulan <add>
elemen yang menentukan ekstensi nama file unik yang akan diizinkan atau ditolak IIS, tergantung pada bagaimana setiap <add>
elemen ditentukan. Dengan menggunakan elemen , <fileExtensions>
Anda dapat menyempurnakan jenis konten yang akan disediakan server Anda untuk klien Web.
Misalnya, jika Anda mengatur atribut allowUnlisted ke false, semua permintaan untuk file dengan ekstensi yang tidak terkandung dalam daftar ekstensi yang diizinkan akan ditolak. Dengan menggunakan <clear>
elemen , Anda dapat menghapus daftar ekstensi nama file yang telah ditentukan, maka Anda hanya dapat menentukan ekstensi nama file yang ingin Anda izinkan.
Catatan
Ketika pemfilteran permintaan memblokir permintaan HTTP karena ekstensi nama file yang ditolak, IIS 7 akan mengembalikan kesalahan HTTP 404 ke klien dan mencatat status HTTP berikut dengan substatus unik yang mengidentifikasi alasan permintaan ditolak:
HTTP Substatus | Deskripsi |
---|---|
404.7 |
Ekstensi File Ditolak |
Substatus ini memungkinkan administrator Web menganalisis log IIS mereka dan mengidentifikasi potensi ancaman.
Kompatibilitas
Versi | Catatan |
---|---|
IIS 10.0 | Elemen <fileExtensions> tidak dimodifikasi di IIS 10.0. |
IIS 8.5 | Elemen <fileExtensions> tidak dimodifikasi di IIS 8.5. |
IIS 8.0 | Elemen <fileExtensions> tidak dimodifikasi di IIS 8.0. |
IIS 7.5 | Elemen <fileExtensions> tidak dimodifikasi dalam IIS 7.5. |
IIS 7.0 | Elemen <fileExtensions> <requestFiltering> koleksi diperkenalkan di IIS 7.0. |
IIS 6.0 | Elemen menggantikan <fileExtensions> fitur IIS 6.0 UrlScan [AllowExtensions] dan [DenyExtensions ]. |
Siapkan
Penginstalan default IIS 7 dan yang lebih baru mencakup layanan atau fitur peran Pemfilteran Permintaan. Jika layanan atau fitur peran Pemfilteran Permintaan dihapus, Anda dapat menginstalnya kembali menggunakan langkah-langkah berikut.
Windows Server 2012 atau Windows Server 2012 R2
- Pada taskbar, klik Manajer Server.
- Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
- Di wizard Tambahkan Peran dan Fitur , klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
- Pada halaman Peran Server , perluas Server Web (IIS), perluas Server Web, perluas Keamanan, lalu pilih Pemfilteran Permintaan. Klik Berikutnya.
.
- Pada halaman Pilih fitur, klik Berikutnya.
- Pada halaman Konfirmasi pilihan instalasi, klik Instal.
- Pada halaman Hasil , klik Tutup.
Windows 8 atau Windows 8.1
- Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
- Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
- Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Keamanan, lalu pilih Pemfilteran Permintaan.
- Klik OK.
- Klik Tutup.
Windows Server 2008 atau Windows Server 2008 R2
- Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
- Di panel hierarki Manajer Server , perluas Peran, lalu klik Server Web (IIS).
- Di panel Server Web (IIS), gulir ke bagian Layanan Peran , lalu klik Tambahkan Layanan Peran.
- Pada halaman Pilih Layanan Peran dari Wizard Tambahkan Layanan Peran, pilih Pemfilteran Permintaan, lalu klik Berikutnya.
- Pada halaman Konfirmasi Pilihan Penginstalan , klik Instal.
- Pada halaman Hasil , klik Tutup.
Windows Vista atau Windows 7
- Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
- Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
- Perluas Layanan Informasi Internet, lalu World Wide Web Services, lalu Keamanan.
- Pilih Minta Pemfilteran, lalu klik OK.
Bagaimana Caranya
Catatan untuk pengguna IIS 7.0: Beberapa langkah di bagian ini mungkin mengharuskan Anda menginstal Paket Administrasi Microsoft untuk IIS 7.0, yang mencakup antarmuka pengguna untuk pemfilteran permintaan. Untuk menginstal Paket Administrasi Microsoft untuk IIS 7.0, silakan lihat URL berikut:
Cara menolak akses ke ekstensi nama file tertentu
Buka Manajer Layanan Informasi Internet (IIS):
Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:
- Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows 8 atau Windows 8.1:
- Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
- Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:
- Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Vista atau Windows 7:
- Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
- Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Di panel Koneksi , buka koneksi, situs, aplikasi, atau direktori yang ingin Anda ubah pengaturan pemfilteran permintaannya.
Di panel Beranda , klik dua kali Pemfilteran Permintaan.
Di panel Pemfilteran Permintaan , klik tab Ekstensi Nama File , lalu klik Tolak Ekstensi Nama File... di panel Tindakan .
Dalam kotak dialog Tolak Ekstensi Nama File , masukkan ekstensi nama file yang ingin Anda blokir, lalu klik OK.
Misalnya, untuk mencegah akses ke file dengan ekstensi nama file .inc, Anda akan memasukkan "inc" dalam kotak dialog.
Konfigurasi
Atribut
Atribut | Deskripsi |
---|---|
allowUnlisted |
Atribut Boolean opsional. Menentukan apakah server Web harus memproses file yang memiliki ekstensi nama file yang tidak terdaftar. Jika Anda mengatur atribut ini ke true, Anda harus mencantumkan semua ekstensi nama file yang ingin Anda tolak. Jika Anda mengatur atribut ini ke false, Anda harus mencantumkan semua ekstensi nama file yang ingin Anda izinkan. Nilai defaultnya adalah true . |
applyToWebDAV |
Atribut Boolean opsional. Menentukan apakah pengaturan ini juga harus berlaku untuk permintaan WebDAV. |
Elemen Anak
Elemen | Deskripsi |
---|---|
add |
Elemen opsional. Menambahkan ekstensi nama file ke kumpulan ekstensi nama file. |
clear |
Elemen opsional. Menghapus semua referensi ke ekstensi nama file dari <fileExtensions> koleksi. |
remove |
Elemen opsional. Menghapus referensi ke ekstensi nama file dari <fileExtensions> koleksi. |
Sampel Konfigurasi
Contoh berikut Web.config file akan mengonfigurasi dua opsi. Ini akan mengonfigurasi pemfilteran permintaan untuk memungkinkan akses WebDAV ke semua ekstensi nama file, dan akan mengonfigurasi IIS untuk menolak akses ke file dengan ekstensi nama file .inc, yang terkadang digunakan sebagai file sertakan untuk aplikasi.
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions applyToWebDAV="false">
<add fileExtension=".inc" allowed="false" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Kode Sampel
Sampel kode berikut akan menambahkan entri ke daftar ekstensi nama file untuk Situs Web Default yang akan menolak akses ke semua file dengan ekstensi .inc, yang kadang-kadang digunakan sebagai file yang disertakan untuk aplikasi, dan mereka akan mengonfigurasi pemfilteran permintaan untuk memungkinkan akses WebDAV ke segmen tersembunyi.
Catatan
Untuk menggunakan sampel yang sama untuk mengizinkan akses, Anda akan mengatur nilai atribut yang diizinkan ke true alih-alih false dalam masing-masing contoh ini.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /fileExtensions.applyToWebDAV:"False"
appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"fileExtensions.[fileExtension='.inc',allowed='False']"
PowerShell
Start-IISCommitDelay
$fileExtensions = Get-IISConfigSection -CommitPath 'Default Web Site' -SectionPath 'system.webServer/security/requestFiltering' | Get-IISConfigCollection -CollectionName 'fileExtensions'
New-IISConfigCollectionElement -ConfigCollection $fileExtensions -ConfigAttribute @{ 'fileExtension' = '.inc'; 'allowed' = $false } -AddAt 0
Set-IISConfigAttributeValue -ConfigElement $fileExtensions -AttributeName 'applyToWebDAV' -AttributeValue $false
Stop-IISCommitDelay
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection requestFilteringSection = config.GetSection("system.webServer/security/requestFiltering");
ConfigurationElement fileExtensionsElement = requestFilteringSection.GetChildElement("fileExtensions");
fileExtensionsElement["applyToWebDAV"] = false;
ConfigurationElementCollection fileExtensionsCollection = fileExtensionsElement.GetCollection();
ConfigurationElement addElement = fileExtensionsCollection.CreateElement("add");
addElement["fileExtension"] = @"inc";
addElement["allowed"] = false;
fileExtensionsCollection.Add(addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
Dim requestFilteringSection As ConfigurationSection = config.GetSection("system.webServer/security/requestFiltering")
Dim fileExtensionsElement As ConfigurationElement = requestFilteringSection.GetChildElement("fileExtensions")
fileExtensionsElement("applyToWebDAV") = False
Dim fileExtensionsCollection As ConfigurationElementCollection = fileExtensionsElement.GetCollection
Dim addElement As ConfigurationElement = fileExtensionsCollection.CreateElement("add")
addElement("fileExtension") = "inc"
addElement("allowed") = False
fileExtensionsCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var fileExtensionsElement = requestFilteringSection.ChildElements.Item("fileExtensions");
fileExtensionsElement.Properties.Item("applyToWebDAV").Value = false;
var fileExtensionsCollection = fileExtensionsElement.Collection;
var addElement = fileExtensionsCollection.CreateNewElement("add");
addElement.Properties.Item("fileExtension").Value = "inc";
addElement.Properties.Item("allowed").Value = false;
fileExtensionsCollection.AddElement(addElement);
adminManager.CommitChanges();
Vbscript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set fileExtensionsElement = requestFilteringSection.ChildElements.Item("fileExtensions")
fileExtensionsElement.Properties.Item("applyToWebDAV").Value = False
Set fileExtensionsCollection = fileExtensionsElement.Collection
Set addElement = fileExtensionsCollection.CreateNewElement("add")
addElement.Properties.Item("fileExtension").Value = "inc"
addElement.Properties.Item("allowed").Value = False
fileExtensionsCollection.AddElement(addElement)
adminManager.CommitChanges()