2026年1月19日 星期一

[研究]實測,GCB,IIS,要求篩選,「允許未列出的副檔名」和「副檔名」列表

[研究]實測,GCB,IIS,要求篩選,「允許未列出的副檔名」和「副檔名」列表

2026-01-19

偶然發現,ASP.NET WebForm 網站 deploy 後,「網站」層級「允許未列出的副檔名」和「副檔名」列表會自動從 IIS「伺服器」層級設定重新覆蓋;所以去改「網站」層級沒有意義,除非不再 Deploy 新 CODE。



********************************************************************************

2026-01-19 補

測試1:Visual Studio 2019 直接 Deploy CODE 到 真實網站目錄,「伺服器」層級「允許未列出的副檔名」和「副檔名」列表會覆蓋「網站」層級設定。

測試2:把真實網站目錄拷貝走,修改設定,目錄拷貝回來覆蓋,設定存在。

測試3:Visual Studio 2019 直接 Deploy  \bin\app.publish 目錄,再拷貝覆蓋掉真實目錄,「伺服器」層級「允許未列出的副檔名」和「副檔名」列表會覆蓋「網站」層級設定。

測試4:「網站」層級新增、刪除一個副檔名後,會反映到 Web.Config,似乎以「伺服器」層級為 Base 的相對設定。
<configuration>
    <system.webServer>
        <security>
            <requestFiltering>
                <fileExtensions allowUnlisted="false">
                    <remove fileExtension=".asax" />
                    <add fileExtension=".aaa" allowed="true" />
                </fileExtensions>
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>


測試5:

狀況A:「伺服器」層級「允許未列出的副檔名」打勾(允許)(沒有.aspx);「網站」層級「允許未列出的副檔名」不打勾(不允許),網站可以跑。

狀況B:「伺服器」層級「允許未列出的副檔名」不打勾(不允許)(沒有.aspx);「網站」層級「允許未列出的副檔名」不打勾(不允許),網站可以跑。

測試6:就算是 .png 檔案,沒有允許也會看不到圖片



測試7:
.css 也要允許才行

測試8:
.dll 不需要允許



(完)

沒有留言:

張貼留言