Blokir akses ke subdirektori menggunakan Web.config


8

Saya memiliki subdirektori dalam proyek ASP.NET saya yang berisi file utilitas. Mereka diperlukan oleh kode pada saat run time, tetapi saya tidak ingin mereka terlihat melalui web.

Apa sintaks dalam file Web.config untuk memblokir akses ke semua pengguna ke subdirektori tunggal dan semua isinya?

Jawaban:


15

IIS 7 memiliki fitur "filter permintaan" baru. Anda mungkin ingin menggunakan konfigurasi segmen tersembunyi:

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <hiddenSegments>
     <add segment="BIN"/>
    </hiddenSegments>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration>

Hal ini menyebabkan http: // situs / bin Anda tidak dapat diservis (tetapi http: // situs / biner Anda masih berfungsi)

Lihat: http://learn.iis.net/page.aspx/143/how-to-use-request-filtering


2
Tetapi ini juga akan memblokir situs Anda / bla / bin / test .... :-(
Carsten Schütte

Bukan jawaban untuk pertanyaan tetapi juga berguna untuk topik yang dihadapi. Anda dapat menggunakan HttpHandlers untuk memblokir ekstensi file spesifik yang Anda inginkan juga. Ini adalah praktik yang baik untuk dilakukan juga, misalnya memblokir semua sumber / file database dll.
rolls

1

Masalah Anda adalah bahwa jika IIS hanya mengembalikan file ASP.Net tidak akan pernah mendapat kesempatan untuk ikut campur. Saya percaya itu bisa dilakukan dengan mengaktifkan otentikasi berbasis formulir dan bermain-main, tetapi saya hanya akan memindahkan file di luar folder wwwroot.

JR


0

Ini seharusnya bekerja:

<configuration>
  <location path="FolderName">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

2
Itu tidak berfungsi karena file tersebut adalah file .txt ... Saya pikir John Rennie benar bahwa ASP.NET tidak mendapatkan kesempatan untuk mengganggu file .txt.
Joel Spolsky

Itu baik untuk diketahui, saya selalu secara eksklusif menyimpan file yang dilayani melalui penangan ASP.NET di direktori saya dapat diakses melalui web sehingga saya tidak pernah mengalami masalah ini
John Rasch
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.