(อย่างไร) เว็บไซต์สามารถกำหนดได้ว่าเปิดใช้งานการท่องเว็บแบบส่วนตัวของ Safari หรือไม่


11

ใน Safari on Mavericks บางครั้งฉันได้รับการโต้ตอบจากเว็บไซต์ที่ระบุว่าฟังก์ชั่นบางอย่างของเว็บไซต์จะถูกบล็อกหรือลดระดับลงเว้นแต่ว่าฉันจะปิดโหมดการท่องเว็บส่วนตัว ผู้ใช้ส่วนใหญ่คาดว่าจะเลือกใช้การเบราส์ส่วนตัวเป็นการส่วนตัวหรือไม่ ความประทับใจของฉันคือเบราว์เซอร์ที่สำคัญอื่น ๆ ไม่รั่วไหลของการท่องเว็บส่วนตัวไปยังเว็บไซต์

ฉันสังเกตเห็นว่าในขณะที่อยู่ในโหมดการท่องเว็บส่วนตัว Safari จะไม่ขอ favicons ดังนั้นในทางทฤษฎีแล้วไซต์สามารถบล็อกการแคชของ favicon และคาดเดาได้ดีว่าการเปิดดูส่วนตัวนั้นเปิดอยู่

ในทางตรงกันข้ามบน iOS แล้ว Safari ไม่ได้ร้องขอ favicons เลย แต่มันจะแม้จะอยู่ในโหมดเรียกดูแบบส่วนตัวขอ "apple-touch-icon" ใด ๆ หากคุณเข้าถึงแผงการใช้ร่วมกัน (ไอคอน apple-touch-icon ใช้เป็นไอคอนหน้าจอหลักหากคุณภายหลัง "เพิ่มไปที่หน้าจอโฮม" สำหรับสิ่งนั้น URL)

นอกเหนือจาก favicon แล้วมีวิธีอื่นที่ทราบว่าเว็บไซต์สามารถระบุ (หรือคาดเดาด้วยความถูกต้องตามสมควร) ว่าคุณใช้โหมดการท่องเว็บส่วนตัวในเดสก์ท็อป Safari หรือไม่


คุณสามารถให้เว็บไซต์ตัวอย่างได้หรือไม่
sayzlim

เช่นvideo.pbs.org "เกิดข้อผิดพลาดเพื่อประสบการณ์ที่ดีที่สุดกับเว็บไซต์นี้โปรดตรวจสอบว่าการดูเว็บแบบส่วนตัวปิดอยู่หรือไม่"
pseudon

อาจเป็นไปได้ว่าเว็บไซต์กำลังปิดปัจจัยอื่น ๆ เช่น DNT = 1 หรือการบล็อกตัวติดตามบางตัว หากเป็นเช่นนั้นข้อความแสดงข้อผิดพลาดจะทำให้เข้าใจผิด แต่ฉันได้รับสิ่งที่คล้ายกันในเว็บไซต์อื่น ๆ
pseudon

1
ฉันเพิ่งทดสอบ DNT และการปิดกั้นส่วนขยายและสิ่งเหล่านั้นดูเหมือนจะไม่เป็นปัจจัย ในโหมดการดูเว็บแบบส่วนตัวโดยปิดนามสกุลทั้งหมดและยกเลิกการตั้งค่า DNT ฉันยังคงได้รับกล่องโต้ตอบข้อผิดพลาด แต่เมื่อปิดการท่องเว็บส่วนตัวและเปิดส่วนขยาย DNT = 1 และ (ปิดกั้น) ฉันจะไม่ได้รับข้อผิดพลาด
pseudon

ทำไมคุณไม่ต้องการให้เว็บไซต์รู้ว่าคุณอยู่ในโหมดความเป็นส่วนตัว? แอปพลิเคชันบนเว็บของเราจะไม่ทำงานอย่างสมบูรณ์ในการกำหนดค่าดังกล่าวเนื่องจากเราใช้ดัชนี indexedb, appcache, ที่เก็บข้อมูลในพื้นที่, คนทำงานเว็บและคุณสมบัติอื่น ๆ ของ HTML5 ที่ไม่สามารถใช้ได้เมื่ออยู่ในโหมดความเป็นส่วนตัว ดังนั้นสิ่งที่คุณต้องการคือวิธีที่จะป้องกันไม่ให้เราบอกผู้ใช้ของเราว่าพวกเขาได้กำหนดค่าเบราว์เซอร์เพื่อให้เว็บแอปพลิเคชันของเราไม่ทำงาน คุณค่าของสิ่งนั้นคืออะไร? (หากคุณไม่เข้าใจว่าทำไมสิ่งนี้ถึงไม่สมเหตุสมผลโปรดผ่อนคลายคุณไม่ได้รับความเสียหายจากการใช้งานเว็บไซต์
user3343404

คำตอบ:


14

บน iOS พื้นที่เก็บข้อมูลในตัวของ HTML5 ไม่สามารถใช้งานได้ในโหมดเรียกดูส่วนตัวซึ่งหมายความว่าคุณสามารถตรวจจับได้โดยพยายามบันทึกบางสิ่งไปยังที่จัดเก็บในตัวเครื่องและตรวจจับข้อยกเว้นด้วย JavaScript ต่อไปนี้:

try { localStorage.test = 2; } catch (e) {
  alert('You are in Private Browsing mode');
}

แก้ไขจากhttps://stackoverflow.com/a/17741714/

บน OS X ไม่มีวิธีบัญญัติมาตรฐาน แต่ควรให้ข้อมูลที่มีประโยชน์:

หากคุณกำลังมองหาคำแนะนำการใช้งานคุณอาจลองใช้ Stack Overflow แทน


ขอบคุณ ฉันสนใจในการติดตั้งฝั่งเซิร์ฟเวอร์เฉพาะเมื่อมันช่วยฉันในการป้องกันศาสตร์มืด;)
pseudon

2
ระวังการปลอมบวก - ตัวอย่าง JavaScript ที่ให้ไว้จะแสดงการแจ้งเตือนในโหมดไม่เป็นส่วนตัวด้วยถ้าล็อกเกอร์หน่วยเก็บข้อมูลในเครื่องสำหรับต้นทางนั้นเต็ม
Mathias Bynens


4

ซาฟารีดูเว็บแบบส่วนตัวไม่ทำงานในลักษณะเดียวกับเบราว์เซอร์อื่น ๆดูเว็บแบบส่วนตัว

ตัวอย่างเช่นโหมดไม่ระบุตัวตนของ Chrome สร้างเซสชันใหม่แยกต่างหากซึ่งข้อมูลทั้งหมดจะถูกลบหลังจากเซสชันการเรียกดู (เว็บไซต์ยังสามารถติดตามการกระทำของคุณจากที่อยู่ IP ในโหมดนั้น)

ในขณะที่ Safari ห้ามเว็บไซต์จากการสร้าง / เขียนไฟล์ในพื้นที่ให้ยกเลิกการเปลี่ยนแปลงทั้งหมดที่ทำกับคุกกี้รวมถึงกิจกรรมของคุณในเบราว์เซอร์ในระหว่างการเรียกดู (เว็บไซต์ยังสามารถติดตามกิจกรรมของคุณในโหมดนี้ยกเว้นว่าพวกเขาเก็บคุกกี้ไว้ในเซสชันนี้ ถูกทิ้ง)

ดังนั้นเว็บไซต์จะทราบได้อย่างไรว่าคุณเปิดใช้งานการท่องเว็บแบบส่วนตัว? เพราะมันตรวจสอบว่ามันสามารถเขียนไฟล์ในเครื่อง


Safari อนุญาตให้ใช้คุกกี้ในเซสชันการเบราส์ส่วนตัวได้ไหม? ฉันสามารถเข้าสู่เว็บไซต์ในขณะที่ในการท่องเว็บส่วนตัวและทำทุกอย่างที่ฉันทำตามปกติและไม่พบข้อ จำกัด ยกเว้นในบางกรณีที่ฉันได้รับการโต้ตอบเช่นนี้
pseudon

ใช่แก้ไขคำตอบของฉันเล็กน้อย ฉันหมายความว่าคุกกี้ของคุณในระหว่างเซสชันนี้จะไม่ถูกบันทึกหลังจากปิดการดูเว็บแบบส่วนตัวแล้ว
sayzlim
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.