針對共享主機安全需求,提供三種層級的 FSO 禁用方案,由輕到重。
regsvr32 /u C:\WINDOWS\SYSTEM\scrrun.dll
regeditHKEY_CLASSES_ROOT\Scripting.FileSystemObjectScripting.FileSystemObject → Scripting.FileSystemObject_CustomSet Fs = Server.CreateObject("Scripting.FileSystemObject_Custom")
Server.CreateObject("Scripting.FileSystemObject")
→ 錯誤 800401f3 (類別未註冊)
HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID{0D43FE01-F093-11CF-8940-00A0C9054228} → {0D43FE01-F093-11CF-8940-00A0C9054229} (尾位 +1)<object> 標籤調用同步修改:
<object runat="server" id="fs1" classid="clsid:0D43FE01-F093-11CF-8940-00A0C9054229"></object>
<object>) 有效CreateObject 呼叫,需配合方法二<%
' 測試 CreateObject
On Error Resume Next
Set fso1 = Server.CreateObject("Scripting.FileSystemObject")
If Err.Number <> 0 Then Response.Write("CreateObject 原名失效: " & Err.Description & "<br>")
' 測試新 ProGID
Set fso2 = Server.CreateObject("Scripting.FileSystemObject_Custom")
If Err.Number = 0 Then Response.Write("CreateObject 新名成功<br>")
' 測試 object 標籤 (需前端配合)
%>