webentwicklung-frage-antwort-db.com.de

Wie erkenne ich privates Surfen in iOS 11 Mobile Safari oder MacOS High Sierra Safari?

Auf dem neuen iOS 11 Safari und MacOS High Sierra Safari funktioniert dieser Trick, zu sehen, ob window.localStorage.setItem('test', 1); (siehe https://stackoverflow.com/a/17741714/1330341 ) einen Fehler auslöst, nicht mehr, da er nicht mehr ausgelöst wird ein Fehler, und es legt auch das localStorage-Element ordnungsgemäß fest. Hat jemand eine andere Möglichkeit gefunden, den privaten Browsermodus in den neuen Versionen von Safari zu überprüfen?

12
JYeh

Ich finde hier eine Lösung:

https://Gist.github.com/cou929/7973956#gistcomment-2272103

var isPrivate = false;
try {
   window.openDatabase(null, null, null, null);
} catch (_) {
   isPrivate = true;
}
alert((isPrivate ? 'You\'re' : 'You aren\'t')  + ' in private browsing mode');

Ich hoffe es hilft :)

1
GOR BAND

Ich habe es noch nicht ausprobiert, aber ich habe das Dokument von Apple gelesen:

https://support.Apple.com/kb/ph21413?locale=en_US

Es werden verschiedene Merkmale des Browsens im privaten Modus (~ snip) aufgelistet:

Wenn Sie ein privates Browserfenster verwenden:

  • Die einzelnen Registerkarten im Fenster sind voneinander isoliert, sodass Websites, die Sie auf einer Registerkarte anzeigen, Ihr Surfen auf anderen Registerkarten nicht nachverfolgen können.

  • Safari kann sich weder an die von Ihnen besuchten Webseiten noch an Ihre AutoFill-Informationen erinnern.

  • Safari speichert Ihre geöffneten Webseiten nicht in iCloud. Sie werden daher nicht angezeigt, wenn Sie alle geöffneten Registerkarten von anderen Geräten aus anzeigen.

  • Ihre letzten Suchanfragen werden nicht in die Ergebnisliste aufgenommen, wenn Sie das Feld "Intelligente Suche" verwenden.

  • Von Ihnen heruntergeladene Elemente sind nicht in der Download-Liste enthalten. (Die Objekte verbleiben auf Ihrem Computer.)

  • Wenn Sie Handoff verwenden, werden private Browsing-Fenster nicht an Ihre iOS-Geräte oder andere Mac-Computer übergeben.

  • Safari speichert keine Änderungen an Ihren Cookies oder anderen Website-Daten. Safari fordert außerdem Websites und andere, die diese Websites mit Inhalten versehen (einschließlich Werbetreibenden), auf, Ihr Surfen nicht im Auge zu behalten, obwohl es Sache der Websites ist, dieser Aufforderung nachzukommen.

  • Plug-Ins, die Private Browsing unterstützen, speichern keine Cookies und keine weiteren Tracking-Informationen mehr.

Insbesondere aus den obigen Gründen fand ich es interessant, dass Safari Websites ausdrücklich auffordert, das Surfen nicht zu verfolgen. Dies könnte möglicherweise ein Mechanismus sein, nach dem gesucht werden muss, um festzustellen, ob das private Surfen verwendet wird.

In dieser Antwort finden Sie ein Beispiel:

Implementierung nicht in asp.net mvc verfolgen

Auch hier habe ich noch nicht getestet und bin mir nicht sicher, ob es funktionieren wird, aber wenn nicht, bietet die Liste weitere mögliche Optionen. HTH.

1
kvr

Zitat von der Apple-Website. https://support.Apple.com/kb/ph21413?locale=en_US

Websites können die auf Ihrem Gerät gespeicherten Informationen nicht ändern. Daher funktionieren Dienste, die normalerweise auf diesen Websites verfügbar sind, möglicherweise anders, bis Sie das private Surfen deaktivieren

Speichern Sie also eine Testvariable, ändern Sie ihren Wert und lesen Sie dann die Testvariable. Wenn Sie eine Ausnahme erhalten, die Variable nicht finden können, der Wert sich nicht geändert hat oder Sie einen Null-/undefinierten Wert zurückerhalten, sind sie höchstwahrscheinlich im privaten Modus.

Alternativ können Sie beim privaten Surfen nicht auf den gespeicherten Suchverlauf zugreifen. Leiten Sie also beim Start zu einer neuen Seite auf Ihrer Site um und testen Sie, ob Sie einen früheren Verlauf haben. Wenn nicht und die Tatsache, dass Sie einen Do Not Track erhalten, bedeutet dies höchstwahrscheinlich, dass Sie sich auf einer Safari im privaten Modus befinden.

Bitte beachten Sie, dass ich dies nicht getestet habe. Dies basiert auf den Informationen, die Apple im obigen Link zur Verfügung gestellt hat.

0
thatguy