Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows 7

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต

ในบทความก่อนหน้า เราเคยกล่าวถึงว่าเมื่อพยายามเปิดไฟล์ Executable ที่ดาวน์โหลดจากอินเทอร์เน็ต Windows จะแสดงคำเตือนความปลอดภัยเกี่ยวกับการรันเนื้อหาที่อาจเป็นอันตราย (รายละเอียดดูที่ How to Disable Security Warnings in Windows) ระบบกำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต? มาลองค้นหาคำตอบกัน

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต

ไฟล์ Executable ทั้งหมดที่ดาวน์โหลดจากอินเทอร์เน็ตผ่าน Browser จะได้รับ Marker พิเศษ กฎนี้รองรับไม่ chỉ Internet Explorer แต่ยังรวม Browser ยอดนิยมอื่นๆ เช่น Mozilla Firefox และ Google Chrome เมื่อคัดลอก เปลี่ยนชื่อ หรือย้ายไฟล์ไปยังพาร์ติชัน NTFS อื่น Marker ยังคงอยู่ด้วย

Marker นี้คือ Alternative NTFS File Stream

หมายเหตุ Alternative NTFS Data Streams ช่วยให้สร้าง Data Stream เพิ่มเติม (Metadata) หลาย Stream สำหรับไฟล์ NTFS แต่ละไฟล์ โดยค่าเริ่มต้น ข้อมูลไฟล์ทั้งหมดถูกเก็บใน Stream หลัก แต่สามารถสร้าง Stream เพิ่มเติม 1 หรือหลาย Stream ได้ และขนาดอาจเกิน Stream หลักได้ ส่วนใหญ่ของแอปพลิเคชัน (รวมถึง Windows Explorer) ทำงานกับ Stream มาตรฐานเท่านั้น และอ่านข้อมูลจาก Alternative NTFS Data Streams ไม่ได้

เพื่อยืนยันว่าไฟล์ที่ดาวน์โหลดจากอินเทอร์เน็ตได้รับ Marker พิเศษ ให้แสดงรายการไฟล์ในไดเรกทอรีที่มีไฟล์ติดตั้งด้วยคำสั่ง:

dir /r

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต

ตามที่เห็น Alternative Stream Zone.Identifier ถูกกำหนดให้กับไฟล์ Executable เช่น install_flash_player_16_active_x.exe:Zone.Identifier

เปิด Alternative Stream ใน Notepad:

Notepad.exe install_flash_player_16_active_x.exe:Zone.Identifier

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต

เราเห็นว่า Stream นี้เป็นไฟล์ที่มีส่วน [ZoneTransfer] ซึ่งระบุ Transfer Zone ID (ZoneId) (นี่คือโซนความปลอดภัยที่พบในการตั้งค่า IE) ZoneId สามารถมีค่า 1 ใน 5 ค่าตั้งแต่ 0 ถึง 4

  1. ZoneId=0: Local machine
  2. ZoneId=1: Local intranet
  3. ZoneId=2: Trusted sites
  4. ZoneId=3: Internet
  5. ZoneId=4: Restricted sites

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต

เมื่อคุณดาวน์โหลดไฟล์จากโซนความปลอดภัย Browser จะกำหนด ZoneId ที่สอดคล้องให้ เมื่อพยายามรันไฟล์ที่มี ZoneId เท่ากับ 3 หรือ 4 ใน Alternative NTFS Stream ระบบจะตรวจจับจาก ID นี้ว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ตหรือแหล่งที่ไม่น่าเชื่อถือ Windows ตรวจสอบ Marker นี้ของไฟล์ Executable ตั้งแต่ Windows XP SP2

เพื่อลบ Marker นี้ (Alternative Stream) ด้วยตนเอง คุณเพียงแค่คลิก Unblock ใน Properties ของไฟล์

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต

ตรวจสอบว่าไฟล์นี้ไม่มี Alternative Stream แล้ว

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต

Tip. เพื่อป้องกันการกำหนด Marker ให้ไฟล์ที่ดาวน์โหลด คุณสามารถบันทึกไฟล์ที่ดาวน์โหลดจากอินเทอร์เน็ตไปยัง File System ที่ต่างจาก NTFS เช่น FAT, exFat เป็นต้น

จริงๆ Windows ไม่มีเครื่องมือจัดการ Alternative Data Streams ตัวอย่างเช่น หากคุณต้องลบพวกมันออกจากหลายไฟล์พร้อมกัน คุณควรใช้เครื่องมือ Console ของบุคคลที่สามโดย Mark Rusinovich — streams

เช่น เพื่อลบ Alternative Streams ของไฟล์ Executable ทั้งหมดใน c:\Download แบบ Recursive ให้รันคำสั่ง:

c:\TOOLS\streams.exe -s -d c:\Download\*.exe

ใน Command Prompt คุณจะเห็นว่า Alternative Stream ของไฟล์ถูกลบ: Deleted :Zone.Identifier:$DATA

สำคัญ. Streams ลบ Alternative Streams ทั้งหมดของไฟล์ที่ระบุ และไม่สามารถระบุ Stream เฉพาะได้ ดังนั้น อย่ารันคำสั่ง streams เป็น streams.exe -s -d c:\*.exe เพราะอาจทำให้ระบบล้มเหลวหลังจากข้อมูลสำคัญใน Alternative NTFS Streams ถูกลบ

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต
ใน PowerShell 3.0 คุณสามารถแสดงรายการไฟล์ที่มี Zone.Identifier Stream ในไดเรกทอรีด้วยคำสั่ง:

Get-ChildItem -Recurse | Get-Item -Stream Zone.Identifier -ErrorAction SilentlyContinue | Select-Object FileName

ลบ Attribute ดังนี้:

Remove-Item .\install-file.exe -Stream Zone.Identifier

ใน Windows PowerShell 4.0 คุณสามารถลบ Zone.Identifier ด้วย Cmdlet แยกต่างหาก:

Unblock-File install-file.exe

คุณสามารถกำหนด Marker ให้ไฟล์ใดๆ ด้วยตนเองโดยรันคำสั่ง:

notepad.exe install_flash_player_16_active_x.exe:Zone.Identifier

เนื่องจากไม่มี Stream ระบบจะถามว่าต้องการสร้างไฟล์ใหม่หรือไม่ ตกลงและคัดลอกข้อความต่อไปนี้ลงใน Notepad:

[ZoneTransfer]
ZoneId=3

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ตบันทึกการเปลี่ยนแปลง ตรวจสอบว่า Alternative Stream ถูกกำหนดให้ไฟล์แล้ว

Windows กำหนดอย่างไรว่าไฟล์ถูกดาวน์โหลดจากอินเทอร์เน็ต