搜尋此網誌

2023年11月27日 星期一

第一次弱掃修正

緣起:


    進公司以來,第一次碰上弱掃的問題,不久前其實有修過一次,但那次是網址的 parameter 相關處理,比較涉及公司程式碼底層,所以不太能寫上來,但第二次掃描掃出的問題,大部份都改一改 webconfig 就能解決了。

    我有去請教我們資深的工程師,他有給我現成的標準解法,照抄就行。想記錄一下這次碰上的問題,還有與之對應的解法。


末加密的 __VIEWSTATE 參數:



    我們資深工程師說,這個要去 IIS 管理那邊為站台產個金鑰,然後把它給設定到 web.confg 裡的 config -> system.web -> machineKey。我後來去看了看 web.confg,發現它其實已經有設定了,所以怎麼還是有錯 ? 接著再繼續找跟 __VIEWSTATE 相關的資料時,發現,原來是因為 
config -> system.web -> pages 的 viewStateEncryptionMode 屬性沒有設定,把它給設成 "Always" 就 OK 了。


應用程式中找到不必要的 HTTP 回應標頭:



    這東西感覺是 ASP 自己產生的,我原本以為要改的話需要去對 IIS 做設定,但問我們的資深工程師,他也是說改 web.config 就行。

    要移除那個 X-Power-By,可以在 configuration tag 裡面加入

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <remove name="X-Powered-By" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

    再來是 X-AspNet-Version,是要在 configuration tag 裡面加

<system.web>
    <httpRuntime enableVersionHeader="false" />
</system.web>

    除了以上那兩個看名稱就能猜到它大概在做什麼的設定,我們資深工程師還有傳這個,一樣是寫在 configuration tag 裡

<system.webServer>
    <security>
        <requestFiltering removeServerHeader="true" />
    </security>
</system.webServer>

    有稍微去查這個設定的作用,是 IIS 10.0 加入的,給我的感覺是,只要有設定這個東西,Server 在回應 client 端時就不會回傳跟 "Server" 有關的 header



沒有留言:

張貼留言