ทุกคนรู้ว่าพลังและการทำลายล้างของส่วนประกอบวัตถุระบบไฟล์เป็นเหตุผลว่าทำไมผู้ให้บริการที่สนับสนุน ASP จะห้ามซ้ำ ๆ บทความนี้เป็นวิธีการปิดใช้งานสามมิติสำหรับส่วนประกอบ FilesystemObject ที่แนะนำโดยบรรณาธิการของช่องเทคโนโลยีใหม่ ฉันหวังว่ามันจะเป็นประโยชน์สำหรับการเรียนรู้ของคุณ!
ประเภทแรก: ใช้ regsrv32/u c: /windows/system/scrrun.dll (เส้นทาง win98) เพื่อออกจากระบบกลุ่ม
- วิธีนี้โหดร้ายเกินไปและเป็นของวิธีการตายด้วยกัน ไม่มีใครสามารถใช้งานได้ มันเป็นเคล็ดลับ
ประเภทที่สอง: แก้ไขค่าของ progid วิธีการเรียกส่วนประกอบใน ASP มักจะตั้งชื่อ Object Name = Server
createObject ("progid") ในเวลานี้เราสามารถปรับเปลี่ยนค่า progid ในรีจิสทรีเพื่อเข้าถึง
ไปยังวิธีการปิดใช้งานส่วนประกอบ แตะ Regedit ในการเริ่มต้นและค้นหา hkey_classes_roo
t/scripting.filesystemobject จากนั้นเราสามารถเปลี่ยนค่าของ progid เช่น
เพื่อเขียนสคริปต์ filesystemobject8 สิ่งนี้เรียกว่าในหน้า ASP:
<%@ language = vbscript%>
-
ตั้งค่า fs = server.createObject ("scripting.filesystemobject8"))
-
(หากคุณไม่เคยเรียกองค์ประกอบนี้มาก่อนคุณไม่จำเป็นต้องรีสตาร์ทและคุณสามารถดูเอฟเฟกต์ได้มิฉะนั้นโปรดกลับมาอีกครั้ง
ดูเอฟเฟกต์หลังจากเริ่มต้น -
ในเวลานี้มาดูผลลัพธ์ของการใช้วิธีการโทรดั้งเดิม:
<%@ language = vbscript%>
-
ตั้งค่า fs = server.createObject ("scripting.filesystemobject")
-
ผลการดำเนินการในเวลานี้คือ:
ข้อผิดพลาดของวัตถุเซิร์ฟเวอร์ 'ASP 0177: 800401F3'
Server.createObject ล้มเหลว
/aspimage/testfile2.asp, บรรทัดที่ 3
800401F3
(ตกลงตรงตามข้อกำหนดของเรา)
เพราะฉันมาสายสองขั้นตอนคนอื่น ๆ จึงรีบตอบวิธีนี้ซึ่งกระตุ้นฉันอย่างมาก
วิธีที่สามผลิตขึ้น
ประเภทที่สาม: ผู้เชี่ยวชาญอย่างระมัดระวังจะคิดว่าเนื่องจากคุณสามารถปิดการใช้งานส่วนประกอบได้โดยการแก้ไขค่า progid
ฉันสามารถแก้ไขได้หรือไม่? (ตกลงคุณคิดเช่นเดียวกับฉัน) เรารู้ว่ายกเว้นวิธี createBject
นอกจากนี้คุณยังสามารถใช้คำอธิบายประกอบ <BOJICT> ทั่วไปเพื่อสร้างส่วนประกอบ เราสามารถใช้ HTM ใน ASP
แท็ก <Object> ของ l เพื่อเพิ่มส่วนประกอบในหน้าเว็บ วิธีคือ:
<Object runat = Server ID = fs1 scope = page progid = "scripting.filesystemobj
ect "> </object>
Runat หมายความว่ามันถูกดำเนินการทางฝั่งเซิร์ฟเวอร์ขอบเขตหมายถึงวงจรชีวิตของส่วนประกอบคุณสามารถใช้เซสชันและ Appl
ication หรือ page (หมายถึงหน้าปัจจุบันซึ่งสามารถเริ่มต้นได้)
วิธีการเขียนนี้ไร้ประโยชน์สำหรับเราและอีกวิธีหนึ่งในการเขียนคือ:
<Object runat = Server ID = fs1 scope = page classid = "clsid: clsid value"> </obj
ect>
นอกจากนี้เรายังสามารถปิดการใช้งานส่วนประกอบได้โดยการปรับเปลี่ยนค่าของ CLSID เช่น HKEY_CLASSES_RO ในรีจิสทรี
OT/Scripting.FilesYstemObject/CLSID ค่า 0D43FE01-F093-11CF-8940-00A0C90
54228 เปลี่ยนเป็น 0d43fe01-F093-11CF-8940-00A0C9054229 (เปลี่ยนอันสุดท้าย) ในเวลานี้
วิธีการเขียนคือ:
<Object Runat = Server ID = FS1 scope = page classid = "clsid: 0d43fe01-f093-11
CF-8940-00A0C9054229 "> </Object>
ดูผลการทำงานไม่มีปัญหาตกลง เราจะใช้อีกครั้ง
<Object Runat = Server ID = FS1 scope = page classid = "clsid: 0d43fe01-f093-11
CF-8940-00A0C9054228 "> </Object>
เกิดข้อผิดพลาดในเวลานี้
สร้างผู้ใช้ใหม่: iusr_domain
ตั้งค่าผู้ใช้ที่ไม่ระบุชื่อ iusr_domain ของไซต์ที่เกี่ยวข้องใน IIS
CACLS: ตั้งค่าการอนุญาตไดเรกทอรี
วิธีนี้ FSO พร้อมใช้งาน แต่จะไม่ส่งผลกระทบต่อผู้อื่น
บทความข้างต้นแนะนำสามวิธีในการปิดการใช้งานส่วนประกอบ FileSySstemObject ฉันเชื่อว่าทุกคนมีความเข้าใจที่ดีในด้านนี้! ไม่ว่าเราจะทำงานอะไรเราต้องเรียนรู้เพิ่มเติมและทำให้ตัวเองแข็งแกร่งขึ้น!