Bagikan melalui


Pembatasan <ISAPI/CGI isapiCgiRestriction>

Gambaran Umum

Elemen <isapiCgiRestriction><elemen keamanan> memungkinkan Anda menentukan daftar aplikasi Common Gateway Interface (CGI) dan Internet Server Application Programming Interface (ISAPI) yang dapat berjalan di Internet Information Services (IIS) 7. Elemen ini memungkinkan Anda memastikan bahwa pengguna jahat tidak dapat menyalin biner CGI dan ISAPI yang tidak sah ke server Web Anda lalu menjalankannya.

Anda perlu menggunakan elemen ini untuk mengonfigurasi server Web Anda hanya ketika situs atau aplikasi menggunakan kumpulan aplikasi yang berjalan dalam mode Klasik. Pembatasan yang Anda konfigurasi dalam <isapiCgiRestriction> elemen hanya berlaku untuk kode ISAPI dan CGI.

Elemen <isapiCgiRestriction> berisi kumpulan <add> elemen. Setiap <add> elemen mendefinisikan biner berbeda yang tidak dapat berjalan pada server IIS 7 dalam mode Klasik.

Misalnya, jika Anda membuat aplikasi ASP.NET 2.0 dan mengonfigurasi aplikasi untuk menggunakan kumpulan aplikasi yang berjalan dalam mode Klasik, permintaan apa pun untuk aplikasi ASP.NET harus melalui aspnet_isapi.dll untuk diproses. Untuk memastikan bahwa IIS memproses permintaan ASP.NET, IIS mengisi <isapiCgiRestriction> elemen dengan <add> elemen yang berisi atribut yang diizinkan dengan nilainya diatur ke true.

Jika Anda mengubah atribut yang diizinkan menjadi false dan meninggalkan kumpulan aplikasi dalam mode Klasik, ASP.NET permintaan akan gagal. Namun, jika Anda mengubah kumpulan aplikasi ke mode Terintegrasi, IIS memproses permintaan ASP.NET menggunakan alur permintaan terintegrasi, yang melewati pembatasan ISAPI dan CGI yang Anda konfigurasi.

Elemen <isapiCgiRestriction> ini bekerja bersama dengan <elemen applicationDependencies> untuk menentukan aplikasi mana yang memiliki dependensi pada satu atau beberapa pembatasan ekstensi CGI atau ISAPI.

Kompatibilitas

Versi Catatan
IIS 10.0 Elemen <isapiCgiRestriction> tidak dimodifikasi di IIS 10.0.
IIS 8.5 Elemen <isapiCgiRestriction> tidak dimodifikasi di IIS 8.5.
IIS 8.0 Elemen <isapiCgiRestriction> tidak dimodifikasi di IIS 8.0.
IIS 7.5 Elemen <isapiCgiRestriction> tidak dimodifikasi dalam IIS 7.5.
IIS 7.0 Elemen <isapiCgiRestriction> ini diperkenalkan di IIS 7.0.
IIS 6.0 Koleksi <isapiCgiRestriction> menggantikan properti WebSvcExtRestrictionList dari objek metabase IIS 6.0 IIsWebService .

Siapkan

Koleksi <isapiCgiRestriction> hanya tersedia setelah Anda menginstal modul Ekstensi CGI atau ISAPI di server IIS 7 dan yang lebih baru. Anda tidak dapat menginstalnya secara independen dari fitur tersebut.

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 Deelopment Aplikasi, lalu pilih Ekstensi CGI atau ISAPI. Klik Berikutnya.
    Cuplikan layar wizard Tambahkan Peran dan Fitur. Opsi Ekstensi I S A P I disorot di menu. .
  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 Fitur Pengembangan Aplikasi, lalu pilih Ekstensi CGI atau ISAPI.
    Cuplikan layar kotak dialog Fitur Windows. Fitur Ekstensi I S A P I 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 Ekstensi CGI atau ISAPI.
    Cuplikan layar Tambahkan Layanan Peran yang menampilkan halaman Layanan Peran. Fitur Ekstensi I S A P I disorot.
  5. Jika dialog Tambahkan layanan peran muncul, klik Tambahkan Layanan Peran yang Diperlukan. (Halaman ini hanya muncul jika Anda belum menginstal layanan peran prasyarat apa pun di server Anda.)
  6. Pada halaman Pilih Layanan Peran , klik Berikutnya.
  7. Pada halaman Konfirmasi Pilihan Penginstalan , klik Instal.
  8. 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. Dalam kotak dialog Fitur Windows, perluas Layanan Informasi Internet, lalu Layanan World Wide Web, lalu Fitur Pengembangan Aplikasi.
  4. Pilih Ekstensi CGI atau ISAPI, lalu klik OK.
    Cuplikan layar dialog Fitur Windows dengan fitur Ekstensi I S A P I disorot.

Bagaimana Caranya

Cara menambahkan pembatasan ISAPI atau CGI

  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 , klik nama server.

  3. Di panel Beranda , klik dua kali Pembatasan ISAPI dan CGI.
    Cuplikan layar jendela I I S Manager yang menampilkan halaman Beranda Server. Ikon untuk Pembatasan I S A P I dan C G I disorot.

  4. Di panel Tindakan , klik Tambahkan...

  5. Dalam kotak dialog Tambahkan Pembatasan ISAPI atau CGI , ketik jalur ke biner yang ingin Anda tambahkan dalam kotak jalur ISAPI atau CGI , ketik deskripsi biner dalam kotak Deskripsi , pilih kotak centang Perbolehkan jalur ekstensi untuk menjalankan untuk memungkinkan biner berjalan di server, lalu klik OK.
    Cuplikan layar kotak dialog Tambahkan I S A P I atau Pembatasan C G I.

Konfigurasi

Koleksi <isapiCgiRestriction> hanya dapat dikonfigurasi di tingkat server dalam file ApplicationHost.config.

Atribut

Atribut Deskripsi
notListedIsapisAllowed Atribut Boolean opsional.

Menentukan apakah modul ISAPI yang tidak terdaftar diizinkan untuk dijalankan di server ini.

Nilai defaultnya adalah false.
notListedCgisAllowed Atribut Boolean opsional.

Menentukan apakah program CGI yang tidak terdaftar diizinkan untuk dijalankan pada server ini.

Nilai defaultnya adalah false.

Elemen Anak

Elemen Deskripsi
add Elemen opsional.

Menambahkan pembatasan untuk pengumpulan pembatasan ISAPI dan CGI.
remove Elemen opsional.

Menghapus referensi ke pembatasan dari koleksi isapiCgiRestriction.
clear Elemen opsional.

Menghapus semua referensi ke pembatasan dari koleksi isapiCgiRestriction.

Sampel Konfigurasi

Contoh konfigurasi berikut adalah <isapiCgiRestriction> konfigurasi elemen untuk IIS 7.0 setelah Anda menginstal ASP dan ASP.NET versi 2.0.

<security>
   <isapiCgiRestriction>
      <add allowed="true" groupId="ASP"
         path="%windir%\system32\inetsrv\asp.dll"
         description="Active Server Pages" />
      <add allowed="true" groupId="ASP.NET v2.0.50727"
         path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll"
         description="ASP.NET v2.0.50727" />
   </isapiCgiRestriction>
</security>

Kode Sampel

Contoh berikut menambahkan pembatasan ISAPI/CGI untuk ekstensi ISAPI kustom yang terletak di folder konten untuk situs Web yang terletak di C:\Inetpub\www.contoso.com\wwwroot. Contoh menentukan nama, jalur, dan grup ekstensi ISAPI, dan mengaktifkan ekstensi.

AppCmd.exe

appcmd.exe set config -section:system.webServer/security/isapiCgiRestriction /+"[path='C:\Inetpub\www.contoso.com\wwwroot\isapi\custom.dll',allowed='True',groupId='ContosoGroup',description='Contoso Extension']" /commit:apphost

Catatan

Anda harus memastikan untuk mengatur parameter penerapan ke apphost saat Anda menggunakan AppCmd.exe untuk mengonfigurasi pengaturan ini. Ini menerapkan pengaturan konfigurasi ke bagian lokasi yang sesuai dalam file ApplicationHost.config.

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.GetApplicationHostConfiguration();
         ConfigurationSection isapiCgiRestrictionSection = config.GetSection("system.webServer/security/isapiCgiRestriction");
         ConfigurationElementCollection isapiCgiRestrictionCollection = isapiCgiRestrictionSection.GetCollection();

         ConfigurationElement addElement = isapiCgiRestrictionCollection.CreateElement("add");
         addElement["path"] = @"C:\Inetpub\www.contoso.com\wwwroot\isapi\custom.dll";
         addElement["allowed"] = true;
         addElement["groupId"] = @"ContosoGroup";
         addElement["description"] = @"Contoso Extension";
         isapiCgiRestrictionCollection.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.GetApplicationHostConfiguration
      Dim isapiCgiRestrictionSection As ConfigurationSection = config.GetSection("system.webServer/security/isapiCgiRestriction")
      Dim isapiCgiRestrictionCollection As ConfigurationElementCollection = isapiCgiRestrictionSection.GetCollection

      Dim addElement As ConfigurationElement = isapiCgiRestrictionCollection.CreateElement("add")
      addElement("path") = "C:\Inetpub\www.contoso.com\wwwroot\isapi\custom.dll"
      addElement("allowed") = True
      addElement("groupId") = "ContosoGroup"
      addElement("description") = "Contoso Extension"
      isapiCgiRestrictionCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var isapiCgiRestrictionSection = adminManager.GetAdminSection("system.webServer/security/isapiCgiRestriction", "MACHINE/WEBROOT/APPHOST");
var isapiCgiRestrictionCollection = isapiCgiRestrictionSection.Collection;

var addElement = isapiCgiRestrictionCollection.CreateNewElement("add");
addElement.Properties.Item("path").Value = "C:\\Inetpub\\www.contoso.com\\wwwroot\\isapi\\custom.dll";
addElement.Properties.Item("allowed").Value = true;
addElement.Properties.Item("groupId").Value = "ContosoGroup";
addElement.Properties.Item("description").Value = "Contoso Extension";
isapiCgiRestrictionCollection.AddElement(addElement);

adminManager.CommitChanges();

Vbscript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set isapiCgiRestrictionSection = adminManager.GetAdminSection("system.webServer/security/isapiCgiRestriction", "MACHINE/WEBROOT/APPHOST")
Set isapiCgiRestrictionCollection = isapiCgiRestrictionSection.Collection

Set addElement = isapiCgiRestrictionCollection.CreateNewElement("add")
addElement.Properties.Item("path").Value = "C:\Inetpub\www.contoso.com\wwwroot\isapi\custom.dll"
addElement.Properties.Item("allowed").Value = True
addElement.Properties.Item("groupId").Value = "ContosoGroup"
addElement.Properties.Item("description").Value = "Contoso Extension"
isapiCgiRestrictionCollection.AddElement(addElement)

adminManager.CommitChanges()