include檔案的利弊及其安全性

來源:互聯網
上載者:User
include|安全|安全性|include|安全|安全性 Include的利弊何在?
你知道Include 可以包含檔案自身嗎?是的。你甚至可以包含幾次。唯一的限制是:你不能讓A包含B,而B又包含A。這樣的迴圈包含是不允許的。

另一個問題是,那些檔案可以包含其他檔案呢?實際上,通過設定IIS,你可以允許任何檔案類型使用SSI。預設地, .shtm,.shtml,.asp,.stm是可以使用Include的。

我們來看看如何使某種檔案類型使用Include。在Internet管理器中,調出網站的屬性對話方塊,選擇MIME類型下的檔案類型按鈕,執行“建立類型”,假設建立類型為:.dark。下面只需要把.dark檔案類型和SSInc.dll關聯就可以了。關聯的意義在於:每次客戶訪問.dark檔案類型時,先執行伺服器端的Include指令。

關聯的方法是:在網站的屬性對話方塊中,選擇“主目錄”,選擇“應用程式對應”,然後增加一個映射:.dark和SSInc.dll

要注意的是,使用了Include的檔案必須允許“執行指令碼”或者“執行”許可權。而如果你不需要在某種類型的檔案裡面使用包含,那麼,簡單地刪除相應的應用程式對應就可以了。

關於使用Include的好處,我們在“什麼是Include”一文裡已經講了。如果你贊成下面的觀點,那麼,Include的好處是顯而易見的:

第一:代碼量越大,bug越多!大的代碼量意味著開發週期長,意味著投入增加。
第二:某段代碼被重用的次數越多,bug越少!那些你現在還在使用的老的代碼往往是Bug Free的。

使用Include恰恰允許我們寫盡量少的代碼,盡量重用代碼。所以,Include是值得的。

關於Include檔案的命名
微軟推薦我們給每一個Include檔案帶一個.Inc尾碼,以便於區別正常的ASP和HTML檔案。但是,很多專家建議不要給Include檔案一個.Inc,因為這可能帶來安全性問題。當駭客知道了或者猜測到你的Include檔案的名稱,它可以從你的網站Download到你的來源程式!有時候,這個問題很嚴重,特別是Include檔案裡麵包含資料庫的使用者名稱和密碼,或者資料庫的連接字串時候!

所以,最好你還是給包含檔案一個看起來很正常的名稱,比如.ASP。當駭客取這個檔案時,就看不到來源程式了。如果你確實要區分正常的檔案和包含檔案,你可以把包含檔案放進一個不同的路徑。

Include存在哪些安全性問題?
網上有很多討論Include安全性的文章。本文分析Include為什麼會帶來安全性問題,怎樣預防。

你可能類似於下面的代碼儲存在一個叫Db.inc的檔案中:
<%
Dim objConn
Set objConn = Server.CreateObject("ADODB.Conection")

objConn.ConnectionString = "DRIVER={Microsoft Access (*.mdb)};" & _
"DBQ=" & Server.MapPath("/MyDatabase.mdb")
objConn.Open
%>

你可以試試從瀏覽器上去拖這個檔案:http://localhost/db.inc
你會很驚訝:來源程式已經顯示在瀏覽器上。如果顯示不出來,你也可以通過查看瀏覽器的原始碼看到!也許你會說:我這個Include檔案名稱很特別,別人是猜測不出來的。呵呵,真的嗎?如果你的某個頁面有錯誤,比如下面的錯誤資訊出現了:
Microsoft VBScript runtime error '800a004'

Invalid Class String

/db.inc, line 3

或者這樣的錯誤:
Microsoft VBScript runtime error '800a004c' 路徑沒有找到.
/db.inc, line 94

你的Include檔案名稱就暴露無疑!(你可以在Internet管理器中設定一下,不要把詳細的錯誤資訊顯示到瀏覽器上)。

解決辦法:
1、 Include檔案的尾碼取成:.asp
2、 所有Include檔案放進同一個目錄,並禁止這個目錄的“讀“許可權。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。