top
Loading...
給你的FileSystemObject對象加把鎖
現在國內提供支持ASP的免費空間越來越多了,對于ASP愛好者來說無疑是個好的勢頭,但是很多提供免費ASP空間的站點都沒有對FileSystemObject這個對象做出任何限制,這也就導致了安全問題。比如,今年愚人節“東莞視窗”所有的主頁都遭到了黑客的攻擊,其實做這件事情很簡單,就是使用FileSystemObject對象,具體的程序就不再討論了。而另外一個比較有名的提供ASP空間的站點“網界”同樣也存在這個安全漏洞,很容易遭到攻擊。不僅僅是這些提供免費空間的站點存在這個安全漏洞,很多國內的虛擬主機提供商同樣也存在這個安全隱患。這樣給商業用戶帶來的危害就很大了。

那么我們如何才能限制用戶使用FileSystemObject對象呢?一種極端的做法是完全反注冊掉提供FileSystemObject對象的那個組件,也就是Scrrun.dll。具體的方法如下:

在MS-DOS狀態下面鍵入:

Regsvr32 /u c:windowssystemscrrun.dll

(注意:在實際操作的時候要更改成為你本地的實際路徑)

但是,顯而易見,如果這樣做,那么包括站點系統管理員在內的任何人都將不可以使用FileSystemObject對象了,這其實并不是站點管理人員想要得到的結果,畢竟我們使用這個對象可以實現方便的在線站臺管理,如果連系統管理員都沒法使用了,那可就得不償失了,但是不禁止這個危險的對象又會給自己的站點帶來安全漏洞。那么有沒有兩全其美的方法呢?有!具體方法如下:

我們可以做到禁止他人非法使用FileSystemObject對象,但是我們自己仍然可以使用這個對象.

方法如下:

查找注冊表中

HKEY_CLASSES_ROOTScripting.FileSystemObject 鍵值

將其更改成為你想要的字符串(右鍵-->"重命名"),比如更改成為

HKEY_CLASSES_ROOTScripting.FileSystemObject2

這樣,在ASP就必須這樣引用這個對象了:

Set fso = CreateObject("Scripting.FileSystemObject2")

而不能使用:

Set fso = CreateObject("Scripting.FileSystemObject")

如果你使用通常的方法來調用FileSystemObject對象就會無法使用了。

呵呵,只要你不告訴別人這個更改過的對象名稱,其他人是無法使用FileSystemObject對象的。這樣,作為站點管理者我們就杜絕了他人非法使用FileSystemObject對象,而我們自己仍然可以使用這個對象來方便的實現網站在線管理等等功能了!

(以上方法在Win98+PWS以及WinNT4+IIS4環境下測試通過)

北斗有巢氏 有巢氏北斗