Bagikan melalui


<Kata kerja kata kerja>

Gambaran Umum

Elemen <verbs> menentukan kata kerja HTTP mana yang diizinkan atau ditolak untuk membatasi jenis permintaan HTTP yang diizinkan oleh server Web.

Catatan

Ketika pemfilteran permintaan memblokir permintaan HTTP karena kata kerja HTTP 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.6 Kata kerja Ditolak

Substatus ini memungkinkan administrator Web menganalisis log IIS mereka dan mengidentifikasi potensi ancaman.

Kompatibilitas

Versi Catatan
IIS 10.0 Elemen <verbs> tidak dimodifikasi dalam IIS 10.0.
IIS 8.5 Elemen <verbs> tidak dimodifikasi dalam IIS 8.5.
IIS 8.0 Elemen <verbs> tidak dimodifikasi dalam IIS 8.0.
IIS 7.5 Elemen <verbs> tidak dimodifikasi dalam IIS 7.5.
IIS 7.0 Elemen <verbs><requestFiltering> koleksi diperkenalkan di IIS 7.0.
IIS 6.0 Elemen ini <verbs> menggantikan fitur IIS 6.0 UrlScan [AllowVerbs] dan [DenyVerbs] .

Siapkan

Penginstalan default IIS 7 dan yang lebih baru mencakup layanan atau fitur peran Pemfilteran Permintaan. Jika layanan atau fitur peran Pemfilteran Permintaan dihapus instalasinya, 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 memperlihatkan panel Server Web dan Keamanan diperluas dengan Pemfilteran permintaan disorot. .
  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 Layanan Web Seluruh Dunia, perluas Keamanan, lalu pilih Pemfilteran Permintaan.
    Cuplikan layar panel Layanan web dan Keamanan World Wide diperluas dengan Pemfilteran Permintaan disorot.
  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 menampilkan panel Keamanan diperluas di halaman Pilih layanan Peran dan Pemfilteran Permintaan dipilih.
  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 node Layanan Informasi Internet dan World Wide Web Service diperluas. Pemfilteran Permintaan 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 kata kerja HTTP

  1. Buka Pengelola 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 Pengelola 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 bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Pengelola 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 Pemfilteran Permintaan dipilih.

  4. Di panel Pemfilteran Permintaan , klik tab kata kerja HTTP , lalu klik Tolak Kata Kerja... di panel Tindakan .
    Cuplikan layar memperlihatkan panel Pemfilteran Permintaan dengan tab kata kerja H T T P dan opsi Tolak Kata Kerja di panel Tindakan.

  5. Dalam kotak dialog Tolak Kata Kerja , masukkan kata kerja HTTP yang ingin Anda blokir, lalu klik OK.
    Cuplikan layar kotak dialog Tolak Kata Kerja memperlihatkan kotak kata kerja H T T P.

    Misalnya, untuk mencegah permintaan HTTP TRACE ke server Anda, Anda akan memasukkan "TRACE" dalam kotak dialog.

Konfigurasi

Atribut

Atribut Deskripsi
allowUnlisted Atribut Boolean opsional.

Menentukan apakah server Web harus memproses kata kerja yang tidak terdaftar. Jika Anda mengatur atribut ini ke true, Anda harus mencantumkan semua kata kerja yang ingin Anda tolak. Jika Anda mengatur atribut ini ke false, Anda harus mencantumkan semua kata kerja 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 kata kerja ke koleksi kata kerja.
clear Elemen opsional.

Menghapus semua referensi ke kata kerja dari koleksi kata kerja.
remove Elemen opsional.

Menghapus referensi ke kata kerja dari koleksi kata kerja.

Sampel Konfigurasi

Contoh berikut Web.config file akan mengonfigurasi dua opsi: ini akan mengonfigurasi IIS untuk menolak permintaan HTTP PUT, dan akan mengonfigurasi pemfilteran permintaan untuk memungkinkan akses WebDAV ke semua kata kerja HTTP.

<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <verbs applyToWebDAV="false">
               <add verb="PUT" allowed="false" />
            </verbs>
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>

Kode Sampel

Sampel kode berikut akan mengonfigurasi dua opsi: mereka akan mengonfigurasi IIS untuk menolak permintaan HTTP PUT untuk "Situs Web Default", dan mereka akan mengonfigurasi pemfilteran permintaan untuk memungkinkan akses WebDAV ke semua kata kerja HTTP.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /verbs.applyToWebDAV:"False"

appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"verbs.[verb='PUT',allowed='False']"

PowerShell

Start-IISCommitDelay

$verbs = Get-IISConfigSection -CommitPath 'Default Web Site' -SectionPath 'system.webServer/security/requestFiltering' | Get-IISConfigCollection -CollectionName 'verbs'

Set-IISConfigAttributeValue -ConfigElement $verbs -AttributeName 'applyToWebDAV' -AttributeValue $false

New-IISConfigCollectionElement -ConfigCollection $verbs -ConfigAttribute @{ 'verb'='PUT';'allowed'=$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 verbsElement = requestFilteringSection.GetChildElement("verbs");
         verbsElement["applyToWebDAV"] = false;
         ConfigurationElementCollection verbsCollection = verbsElement.GetCollection();

         ConfigurationElement addElement = verbsCollection.CreateElement("add");
         addElement["verb"] = @"PUT";
         addElement["allowed"] = false;
         verbsCollection.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 verbsElement As ConfigurationElement = requestFilteringSection.GetChildElement("verbs")
      verbsElement("applyToWebDAV") = False
      Dim verbsCollection As ConfigurationElementCollection = verbsElement.GetCollection

      Dim addElement As ConfigurationElement = verbsCollection.CreateElement("add")
      addElement("verb") = "PUT"
      addElement("allowed") = False
      verbsCollection.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 verbsElement = requestFilteringSection.ChildElements.Item("verbs");
verbsElement.Properties.Item("applyToWebDAV").Value = false;
var verbsCollection = verbsElement.Collection;

var addElement = verbsCollection.CreateNewElement("add");
addElement.Properties.Item("verb").Value = "PUT";
addElement.Properties.Item("allowed").Value = false;
verbsCollection.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 verbsElement = requestFilteringSection.ChildElements.Item("verbs")
verbsElement.Properties.Item("applyToWebDAV").Value = False
Set verbsCollection = verbsElement.Collection

Set addElement = verbsCollection.CreateNewElement("add")
addElement.Properties.Item("verb").Value = "PUT"
addElement.Properties.Item("allowed").Value = False
verbsCollection.AddElement(addElement)

adminManager.CommitChanges()