0%

如何設定檔案、資料夾匿名驗證存取權限

每次討論到windows或是IIS權限都是我的弱項,碰到這類問題總是要搞個老半天,所以處理完趕緊來記錄一下!!

情境 :

同事希望某個資料夾下的Json檔案都不能被外部存取,但唯獨某一支有資訊安全問題,想要排除

解決方案:

一開始單純的想說透過IIS的驗證設定將該資料夾的匿名驗證停用,但這樣就變成所有在該資料夾底下的檔案都讀取不到了。
[![](https://2.bp.blogspot.com/-RnKuPAsgeo4/WNHuiKDxc5I/AAAAAAAAIFo/iW3Vy1dIanMIQnrg8fN8Bey6ieywbJX8ACLcB/s640/1.png)](https://2.bp.blogspot.com/-RnKuPAsgeo4/WNHuiKDxc5I/AAAAAAAAIFo/iW3Vy1dIanMIQnrg8fN8Bey6ieywbJX8ACLcB/s1600/1.png)
最後查了一下後,採取透過Web.config設定的方式來達成!!
  1. 首先在Web.config的system.webServer區段接入以下區段 ```xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

2. 接著在想要權限控管的那個資料夾底下加入一個新的web.config,並且寫入以下區段 ```xml
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
<location path="xxx.json"> <system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
</configuration>

這邊稍微解釋一下意思,首先authorization區段底下寫著deny user=”?”,表示匿名驗證的使用者都無法存取。

接著location path這段是表示,xxx.json,他的權限是可以允許(allow)匿名驗證者個存取。&nbsp;</div><div>
這樣設定完後進行測試,的確該資料夾底下的所以檔案都會無法直接讀取,並且跳出401權限驗證錯誤,而xxx.json雖然在同資料夾下,但卻是可以直接讀取檔案的

因為關於權限設定真的是肉腳一枚,如果有寫錯或觀念偏誤的地方,也歡迎留言指正教導,感激不盡!!!