2012-02-22 82 views
5

在我的.NET Web應用程序中,我通常有一個Scripts文件夾,其中包含我所有的JavaScript文件 - 現在大部分是jQuery,偶爾還有某種類型的JavaScript庫。腳本文件夾中存在一個漏洞?

我正在通過名爲Nexpose的掃描程序對我的某個網站運行漏洞掃描,並通知我腳本文件夾向全世界開放 - 意味着未經身份驗證的用戶可以下載該文件夾中包含的JavaScript文件,是一個嚴重的漏洞。根據Nexpose的說法,腳本文件夾應該僅限於允許經過身份驗證的用戶訪問它。這導致我第一個問題。

如何將腳本文件夾限制爲僅經過身份驗證的用戶?我嘗試將一個web.config文件放入Scripts文件夾,並拒絕以這種方式訪問​​所有未經身份驗證的用戶,但它不起作用。我自己能夠確定這一點,但去我的網站的登錄頁面,但沒有登錄,然後輸入https://mywebsite/scripts/menubar.js,果然,它允許我下載menubar.js文件。

第二個問題 - 爲什麼這被認爲是一個漏洞?我試圖通過這裏的可能性推理我的方式,但我沒有提出多少。這是否只是因爲Joe l33t h4x0r能夠找出我正在使用的各種庫,然後可能使用已知的漏洞攻擊他們?

更新

壓倒性的答案似乎是,絕不應該漏洞只存在,因爲.js文件可以打開和客戶端的瀏覽器閱讀。如果開發人員以某種不安全的方式使用.js文件(我不知道),則可能存在的唯一漏洞是。

回答

5

從邏輯上講,您不希望實際禁止訪問實際文件,因爲您無法在網頁中使用它們。網絡服務器在瀏覽器請求文件時不區分作爲渲染網頁的過程的一部分,而不是僅僅手動下載文件的人。

因此,你的第一個問題的答案是:你不能也不會想。如果您不希望用戶訪問,請將其從Web文件夾中取出。如果需要呈現您的網站,那麼您需要任何人都可以訪問它,以便您的網站可以正常呈現。

至於爲什麼它被認爲是一個漏洞,誰在說這是一個漏洞?我可以去拉Facebook現在使用的任何JavaScript。或者,更重要的是,我可以去美國銀行或Chase的網站,並開始瀏覽他們的JavaScript。如果我有一個帳戶,我甚至可以看看用戶登錄後使用的JavaScript。

您可能需要擔心的唯一事情是您始終需要擔心的同一件事:公開詳細信息那不應該暴露。例如,我不確定爲什麼會這樣做,但將數據庫密碼放入JavaScript文件顯然不是一個好主意。除此之外,沒有什麼可擔心的。

+0

同意。 * Nexpose *幾乎不是這類事務的最終權威。 – 2012-02-22 21:20:05

+0

這不一定是真的,最後一塊沒什麼可擔心的。如果你的web服務器對這個目錄有寫訪問權限,並且讓它寫Woot4Moo的自定義Javascript文件,那麼沒有人會很高興,或者更重要的是任何能夠欺騙服務器寫入文件的文件。 – Woot4Moo 2012-02-22 21:22:23

+0

這就是問題 - Nexpose告訴我這是一個漏洞。人們會認爲漏洞掃描工具會知道某件事情是否真的是一個漏洞。然而,我意識到這可能不是這種情況(這意味着它可能不是一個漏洞),並認爲我會在關於它的計算器上做好發佈。 – Jagd 2012-02-22 21:24:45

1

是的。你應該保持大部分的處理在服務器端完成,因爲大多數(如果不是全部的話)客戶端腳本可以被編輯,等等。大多數網站使用Javascript,所以簡單地使用它並不危險,你只需要小心你對它做了什麼。

此外,要回答您的第一個問題,請不要保護它們,如果未經驗證的用戶也需要它們。

1

聽起來像一些安全套件有一個發癢的觸發手指。我能看到的唯一兩個問題是,如果某人選擇指向您的 jQuery或您的 -insert庫名稱 - 或者(現在這是一個真正的安全風險),您可能最終將您的服務器作爲CDN借出,如果您還在其中提供任何可能構成潛在威脅的動態.js文件。我能想到的唯一的另一件事是,如果你有你的「自定義」應用程序js與所有可能發現你的端點(web服務等)的庫混合在一起,並嘗試看看它們是否安全...... 但就是這樣!沒有更多...(除非你做了一些非常愚蠢的事情,像硬編碼密碼或其他東西在裏面......大聲笑)

1

因此,攻擊不是人們可以編輯腳本攻擊獲取Web服務器任意寫入目錄。你需要做的是確保它們是隻讀文件。 chmod 400或windows讀取。就深度防禦(DiD)而言,您希望確保Web服務器是無法登錄到系統的非特權用戶。此外,需要發生的是,您正在服務器上執行所有數據清理,無論您在客戶端執行什麼操作,因爲您不控制客戶端。通常情況下,這涉及確保您清理所有來自Web和數據庫的數據,然後才能提供服務。我最喜歡做的事情之一就是在數據庫中插入任意的javascript,並觀察它在UI中做的事情,因爲開發團隊認爲一切都會好的,因爲他們已經清理過一次。

如果有保證,我可以提供有關保護系統的更多詳細信息。

2

在大多數情況下,這不是一個漏洞。考慮所有具有匿名流量的大型公共站點和/或成爲經過認證的用戶(Google,eBay,亞馬遜等)的非常容易的地方。這些站點也有一些最精細的腳本。

更要注意的是其他文件,你想要保護。例如,如果用戶在查看之前必須先登錄到您的網站併購買文檔,視頻,圖片等,那麼它肯定不應該放在公共可訪問的文件夾中。

+0

感謝您的幫助。不,我沒有這樣的事情發生在這裏。它只是一個包含.js文件的文件夾;然而,你給了我一些新的東西來思考這裏。 – Jagd 2012-02-22 21:34:00

相關問題