Bagikan melalui


File Ekstensi Nama FileEkstensi <>

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

  1. Pada taskbar, klik Manajer Server.
  2. Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
  3. Di wizard Tambahkan Peran dan Fitur , klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
  4. Pada halaman Peran Server , perluas Server Web (IIS), perluas Server Web, perluas Keamanan, lalu pilih Pemfilteran Permintaan. Klik Berikutnya.
    Cuplikan layar opsi Pemfilteran Permintaan disorot dan dipilih. .
  5. Pada halaman Pilih fitur, klik Berikutnya.
  6. Pada halaman Konfirmasi pilihan instalasi, klik Instal.
  7. Pada halaman Hasil , klik Tutup.

Windows 8 atau Windows 8.1

  1. Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
  3. Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Keamanan, lalu pilih Pemfilteran Permintaan.
    Cuplikan layar folder Pemfilteran Permintaan disorot dan dipilih.
  4. Klik OK.
  5. Klik Tutup.

Windows Server 2008 atau Windows Server 2008 R2

  1. Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
  2. Di panel hierarki Manajer Server , perluas Peran, lalu klik Server Web (IIS).
  3. Di panel Server Web (IIS), gulir ke bagian Layanan Peran , lalu klik Tambahkan Layanan Peran.
  4. Pada halaman Pilih Layanan Peran dari Wizard Tambahkan Layanan Peran, pilih Pemfilteran Permintaan, lalu klik Berikutnya.
    Cuplikan layar Wizard Tambahkan Layanan Peran
  5. Pada halaman Konfirmasi Pilihan Penginstalan , klik Instal.
  6. Pada halaman Hasil , klik Tutup.

Windows Vista atau Windows 7

  1. Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
  3. Perluas Layanan Informasi Internet, lalu World Wide Web Services, lalu Keamanan.
  4. Pilih Minta Pemfilteran, lalu klik OK.
    Cuplikan layar Wizard Pilih Layanan Peran memperlihatkan folder Pemfilteran Permintaan yang disorot dan dipilih.

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

  1. 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).
  2. Di panel Koneksi , buka koneksi, situs, aplikasi, atau direktori yang ingin Anda ubah pengaturan pemfilteran permintaannya.

  3. Di panel Beranda , klik dua kali Pemfilteran Permintaan.
    Cuplikan layar panel Beranda Situs Web Default memperlihatkan opsi Pemfilteran Permintaan yang sedang disorot.

  4. Di panel Pemfilteran Permintaan , klik tab Ekstensi Nama File , lalu klik Tolak Ekstensi Nama File... di panel Tindakan .
    Cuplikan layar panel Pemfilteran Permintaan memperlihatkan opsi Tolak Ekstensi Nama File.

  5. Dalam kotak dialog Tolak Ekstensi Nama File , masukkan ekstensi nama file yang ingin Anda blokir, lalu klik OK.
    Cuplikan layar kotak dialog Tolak Ekstensi Nama File, memperlihatkan opsi O K. 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()