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?

Joel Spolsky
sumber

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

MattB
sumber
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

John Rennie
sumber
0

Ini seharusnya bekerja:

<configuration>
  <location path="FolderName">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>
John Rasch
sumber
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