วิธีการหยุดตัวควบคุม ActiveX ไม่ให้ทำงานในโปรแกรม Internet Explorer

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 240797 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

บทความนี้อธิบายวิธีการหยุดตัวควบคุม ActiveX ไม่ให้ทำงานภายใต้โปรแกรม Microsoft Internet Explorer และ Windows Internet Explorer คุณสามารถทำได้โดยการแก้ไขค่าข้อมูลของค่า Compatibility Flags DWORD สำหรับ Class identifier (CLSID) ของตัวควบคุม ActiveX

หมายเหตุ สำหรับคอมพิวเตอร์ที่ใช้ Microsoft Windows XP และ Windows Server 2003 ผู้ดูแลระบบสามารถใช้นโยบายจำกัดซอฟต์แวร์เพื่อป้องกันไม่ให้ตัวควบคุม ActiveX ทำงานในโปรแกรมใดๆ ในคอมพิวเตอร์ในสภาพแวดล้อมโดเมน Active Directory สำหรับข้อมูลเพิ่มเติมเกี่ยวกับนโยบายจำกัดซอฟต์แวร์ โปรดแวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://technet.microsoft.com/th-th/library/bb457006.aspx

ข้อมูลเพิ่มเติม

ข้อสำคัญ ส่วน วิธีการ หรืองานนี้ประกอบด้วยขั้นตอนต่างๆ เกี่ยวกับวิธีการปรับเปลี่ยนรีจิสทรี อย่างไรก็ตาม ปัญหาร้ายแรงอาจเกิดขึ้นหากคุณปรับเปลี่ยนรีจิสทรีไม่ถูกต้อง ดังนั้น โปรดตรวจสอบให้แน่ใจว่าคุณได้ทำตามขั้นตอนเหล่านี้อย่างระมัดระวัง สำหรับการป้องกันเพิ่มเติม ให้สำรองรีจิสทรีก่อนทำการปรับเปลี่ยน เพื่อที่คุณจะสามารถคืนค่ารีจิสทรีได้หากมีปัญหาเกิดขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูลและคืนค่ารีจิสทรี โปรดคลิกที่หมายเลขบทความต่อไปนี้ เพื่อดูบทความใน Microsoft Knowledge Base:
322756 วิธีการสำรองข้อมูลและคืนค่ารีจิสทรีใน Windows


คำเตือน Microsoft ไม่แนะนำให้ ยกเลิกการทำลาย (ยกเลิกคำสั่งทำลาย) ของตัวควบคุม ActiveX หากคุณทำเช่นนั้น อาจทำให้เกิดปัญหาด้านความปลอดภัย บิตการทำลายปกติจะได้รับการกำหนดสำหรับสาเหตุที่สำคัญ และเนื่องจากสาเหตุนี้ จึงต้องใช้งานอย่างระมัดระวังเมื่อคุณยกเลิกการทำลายการทำงานของตัวควบคุม ActiveX นอกจากนี้ เนื่องจากขั้นตอนต่อไปนี้เป็นเรื่องซับซ้อนทางเทคนิค อย่าทำต่อนอกจากคุณจะเข้าใจการทำงานต่างๆ และควรอ่านขั้นตอนทั้งหมดก่อนที่จะเริ่มทำงาน

CLSID สำหรับตัวควบคุม ActiveX คือ GUID สำหรับตัวควบคุม คุณสามารถป้องกันไม่ให้ตัวควบคุม ActiveX ทำงานใน Internet Explorer โดยกำหนดบิตการทำลายเพื่อให้ไม่มีการเรียกใช้ตัวควบคุมโดยโปรแกรม Internet Explorer เมื่อใช้การตั้งค่าเริ่มต้น

บิตการทำลายคือค่าเฉพาะสำหรับค่า Compatibility Flags DWORD สำหรับตัวควบคุม ActiveX ในรีจิสทรี ซึ่งแตกต่างไปจากการยกเลิกตัวเลือก "safe for scripting" ในตัวควบคุม ActiveX เมื่อมีการยกเลิกตัวเลือก "safe for scripting" โปรแกรม Internet Explorer ยังเรียกใช้ตัวควบคุมและพรอมต์คุณด้วยข้อความแจ้งเตือนว่าตัวควบคุม ActiveX อาจไม่ปลอดภัย ตัวควบคุมอาจทำงาน โดยขึ้นกับตัวเลือกของคุณ อย่างไรก็ตาม หลังจากมีการกำหนดบิตการทำลายสำหรับตัวควบคุม ActiveX แล้ว ตัวควบคุมจะไม่ได้รับการเรียกใช้งานโดยโปรแกรม Internet Explorer ยกเว้นมีการใช้ตัวเลือก Initialize and script ActiveX controls not marked as safe ในโปรแกรม Internet Explorer เมื่อต้องการกำหนดบิตการทำลาย ให้ทำตามขั้นตอนต่อไปนี้:
  1. ระบุ CLSID สำหรับตัวควบคุม ActiveX ที่คุณต้องการปิดใช้งาน หากคุณไม่แน่ใจ CLSID ของตัวควบคุม โปรดติดต่อบริษัทผู้ผลิต หากมีการติดตั้งตัวควบคุม คุณอาจสามารถระบุ CLSID ได้หากคุณทราบชื่อที่จำง่ายของมันได้ เมื่อต้องการทำเช่นนี้ ให้ตรวจสอบค่าสายอักขระที่เป็นค่าเริ่มต้นสำหรับคีย์ ProgID สำหรับแต่ละคีย์ CLSID ใน
    HKEY_CLASSES_ROOT\CLSID
    คุณอาจต้องลบตัวควบคุม ActiveX เป็นจำนวนมากที่สุดเท่าที่จะทำได้ ยกเว้นตัวควบคุมที่คุณต้องการปิดใช้งาน เพื่อให้ระบุ CLSID ที่ถูกต้องได้ง่ายขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการลบตัวควบคุม ActiveX โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
    154850 วิธีการลบตัวควบคุม ActiveX ใน Windows (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
  2. ใช้ Registry Editor เพื่อดูค่าข้อมูลของค่า Compatibility Flags DWORD ของวัตถุ CLSID ของ ActiveX ในคีย์รีจิสทรีต่อไปนี้
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\
    CLSID of the ActiveX control
    โดยที่ CLSID of the ActiveX Control คือตัวระบุคลาสของตัวควบคุม ActiveX ที่เหมาะสม

    หมายเหตุ โดยทั่วไปแล้วคุณจะต้องสร้างคีย์รีจิสทรีนี้ด้วยตนเอง
  3. เปลี่ยนค่าของ Compatibility Flags DWORD ให้เป็น 0x00000400
ถ้าบิตการทำลายถูกกำหนดไว้แล้วสำหรับตัวควบคุม ActiveX และปรากฏว่ามีตัวควบคุม ActiveX รุ่นใหม่ออกมาพร้อมกับ CLSID ตัวใหม่ คุณก็สามารถทำให้เว็บไซต์ต่างๆ ที่ยังคงใช้ CLSID เก่าอยู่ทำงานเหมือนเดิมได้ โดยการเพิ่มค่าใหม่เข้าไปในระดับเดียวกันกับค่าของ Compatibility Flags ในรีจิสทรี ค่าดังกล่าวควรเป็นสายอักขระแบบ REG_SZ โดยตั้งชื่อว่า "AlternateCLSID” ค่าของ AlternateCLSID จะปรากฏอยู่ภายในเครื่องหมาย { } จะคล้ายกันกับตัวอย่างต่อไปนี้:
{ABCDEF12-ABCD-ABCD-ABCD-ABCDEF123456}
ตัวอย่าง:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\

{CLSID of killed ActiveX control}, Compatibility Flags, 0x0400

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\

{CLSID of killed ActiveX control}, AlternateCLSID, "{CLSID of alternate ActiveX control}"
Internet Explorer จะทำการแปลค่าดังกล่าว แล้วสร้างตัวควบคุม ActiveX ชั่วคราวขึ้นมา ซึ่งอ้างอิงกับค่าของ AlternateCLSID แทนที่จะใช้ค่าที่รับมาจากบิตการทำลาย

หมายเหตุ เพื่อให้ค่าของ AlternateCLSID ใช้งานได้ จะต้องมีการกำหนดค่า CLSID เริ่มต้นของบิตการทำลาย
นักพัฒนาตัวควบคุม ActiveX สามารถใช้ค่ารีจิสทรี TreatAs หรือ AlternateCLSID กับ "บิตการทำลาย" เพื่อให้ Internet Explorer ตรวจดูว่ามีการปรับปรุงตัวควบคุม ActiveX สำหรับใช้งานแทนการปิดใช้งานตัวควบคุม ActiveX สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้ค่า TreatAs แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://msdn.microsoft.com/th-th/library/ms679737(VS.85).aspx
หากต้องการกำหนดค่า AlternateCLSID โปรดปฏิบัติตามขั้นตอนต่อไปนี้:
  1. ใช้ Registry Editor เพื่อหาวัตถุ CLSID ของ ActiveX ในคีย์รีจิสทรีต่อไปนี้:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\
    CLSID of the ActiveX control
    โดยที่ CLSID of the ActiveX control คือตัวระบุคลาสของตัวควบคุม ActiveX ที่เหมาะสม

    คุณสามารถเห็นว่าค่าของ Compatibility Flags ได้รับการกำหนดเป็น DWORD 00000400
  2. เพิ่มสายอักขระ AlternateCLSID ให้คีย์ CLSID
  3. กำหนดข้อมูลของค่าสายอักขระ AlternateCLSID เป็น{CLSID of the alternate ActiveX control} โดยที่ {CLSID of the ActiveX Control} คือตัวระบุคลาสของตัวควบคุม ActiveX ที่มีการปรับปรุง
ค่า AlternateCLSID แนะนำให้ Internet Explorer เพื่อเปลี่ยนเส้นทางไปยัง CLSID สำหรับตัวควบคุม ActiveX ที่ได้รับการปรับปรุง คุณสามารถกำหนดการเปลี่ยนเส้นทางได้สูงสุดถึงสิบระดับ

ค่า AlternateCLSID สามารถใช้งานได้กับรุ่นต่อไปนี้ของโปรแกรม Internet Explorer
  • Internet Explorer 5.01 Service Pack 2 หรือใหม่กว่าสำหรับ Windows 2000 ที่มี MS03-004 หรือใหม่กว่า
  • Internet Explorer 5.5 Service Pack 2 ที่มี MS02-068 หรือใหม่กว่า
  • Internet Explorer 6 Service Pack 1
  • Internet Explorer 6 for Windows XP ที่มี MS02-068 หรือใหม่กว่า
  • Internet Explorer 6 for Windows Server 2003
  • Windows Internet Explorer 7 for Windows Server 2003 IA64
  • Windows Internet Explorer 7 for Windows XP
  • Windows Internet Explorer 7.0 for Windows Server 2003
  • Windows Internet Explorer 7.0 ใน Windows Vista
หมายเหตุ รุ่นต่างๆ ของโปรแกรม Internet Explorer ที่ไม่ได้แสดงไว้ในบทความนี้อยู่ในช่วงขยายของอายุผลิตภัณฑ์หรือไม่ได้รับการสนับสนุนอีกต่อไป แม้ว่าคุณจะสามารถกำหนดบิตการทำลายรุ่นต่างๆ เหล่านี้ของ Windows และของ Internet Explorer Microsoft แนะนำให้คุณปรับรุ่นไปเป็นรุ่นที่สนับสนุนของโปรแกรม Internet Explorer แล้วใช้การปรับปรุงที่เหมาะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตรวจสอบรุ่นของโปรแกรม Internet Explorer ที่ติดตั้งอยู่ คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
164539 วิธีการตรวจสอบรุ่นของโปรแกรม Internet Explorer ที่ติดตั้งอยู่ (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบิตการทำลายของตัวควบคุม ActiveX โปรดดูที่บทความของบล็อกเรื่องงานวิจัย&การป้องกันการเกิดช่องโหว่บนระบบความปลอดภัยของ Microsoft ดังต่อไปนี้:
คำถามที่ถามบ่อยเกี่ยวกับบิตการทำลาย: ส่วนที่ 1 จาก 3
http://blogs.technet.com/srd/archive/2008/02/06/The-Kill_2D00_Bit-FAQ_3A00_-Part-1-of-3.aspx
คำถามที่ถามบ่อยเกี่ยวกับบิตการทำลาย: ส่วนที่ 2 จาก 3
http://blogs.technet.com/srd/archive/2008/02/07/The-Kill_2D00_Bit-FAQ_3A00_-Post-2-of-3.aspx
คำถามที่ถามบ่อยเกี่ยวกับบิตการทำลาย: ส่วนที่ 3 จาก 3
http://blogs.technet.com/srd/archive/2008/02/08/The-Kill_2D00_Bit-FAQ_3A00_-Part-3-of-3.aspx

ข้อมูลเพิ่มเติมสำหรับผู้จำหน่ายโปรแกรมประยุกต์

ผู้จำหน่ายโปรแกรมประยุกต์ที่มีปัญหาด้านความปลอดภัยกับตัวควบคุม ActiveX ที่ติดตั้งอยู่ สามารถร้องขอให้ Microsoft ออกบิตการทำลายเพื่อป้องกันไม่ให้ตัวควบคุม ActiveX ทำงานใน Internet Explorer จะมีการดำเนินการคำร้องขอที่ได้รับการอนุมัติในการปรับปรุงครั้งต่อไปสำหรับ ActiveX Kill Bits Security Advisory Microsoft จะออกบิตการทำลายเฉพาะตัวควบคุม ActiveX ที่พบว่ามีช่องโหว่เท่านั้น และในกรณีที่ผู้จัดจำหน่ายซอฟต์แวร์อิสระ (ISV) ผู้เป็นเจ้าของได้สร้างตัวควบคุม ActiveX ในรุ่นที่ปรับปรุงล่าสุดแล้วเท่านั้น ISV ที่มีตัวควบคุม ActiveX ที่มีช่องโหว่สามารถอีเมลคำร้องมาที่ msvr@microsoft.com พร้อมคำตอบสำหรับคำถามต่อไปนี้:
  • URL สาธารณะสำหรับตัวควบคุม ActiveX ที่ได้รับการปรับปรุงแล้วคืออะไร
  • CLSID ของตัวควบคุม ActiveX ที่มีการขอรับบิตการทำลายภายใน Internet Explorer คืออะไร
  • ตัวควบคุม ActiveX ที่ได้รับการปรับปรุงแล้วนี้ได้รับ CLSID ใหม่ที่ตั้งค่าบิตการทำลายไปยัง CLSID ที่มีช่องโหว่ในขั้นตอนนี้หรือไม่ ขั้นตอนในการทำงานดังกล่าวนี้ถูกจัดเก็บเป็นข้อมูลไว้ในบทความของฐานความรู้ฉบับนี้
  • ตัวควบคุม ActiveX ที่มีการร้องขอได้ทำเครื่องหมายเป็น safe-for-scripting หรือ safe-for-initialization หรือไม่
  • มีรุ่นเก่าของตัวควบคุม ActiveX ที่มีการร้องขอหรือไม่ หากตอบว่า "ใช่" CLSID ของรุ่นดังกล่าวคืออะไร
  • วิธีการส่งมอบหลักสำหรับตัวควบคุม ActiveX ที่มีการร้องขอไปยังลูกค้าเป็นอย่างไร
  • URL สาธารณะสำหรับ ISV Advisory ที่เปิดเผยข้อมูลช่องโหว่คืออะไร

คุณสมบัติ

หมายเลขบทความ (Article ID): 240797 - รีวิวครั้งสุดท้าย: 12 พฤษภาคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 6.0
  • Windows Internet Explorer 7 for Windows XP
  • Windows Internet Explorer 7 for Windows Server 2003
  • Windows Internet Explorer 7 in Windows Vista
  • Windows Internet Explorer 8
  • Windows Internet Explorer 9
Keywords: 
kbenv kbhowto KB240797

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com