Userrestriktionen der Fritz-Oberfläche bei Nutzung eines veralteten Browsers

Karl.

Aktives Mitglied
Mitglied seit
18 Jul 2019
Beiträge
828
Punkte für Reaktionen
106
Punkte
43
Das Problem mit dem Feedback-Formular ist bereits seit einiger Zeit behoben.
 

rstle

Aktives Mitglied
Mitglied seit
19 Okt 2005
Beiträge
1,360
Punkte für Reaktionen
33
Punkte
48
Schön, ich hatte zuletzt nichts mehr zu melden.
 

hippie2000

Neuer User
Mitglied seit
20 Jan 2008
Beiträge
144
Punkte für Reaktionen
59
Punkte
28
Ich hab jetzt mal einen permanenten Scanner geschrieben der die Abhängigkeiten der JavaScript methoden des Browser-Checks im Detail aufzeigt.


Also diese Scripts alle anzupassen auch mit älteren Browsern zu funktionieren wird wohl nicht passieren.
Aber man sieht auch dass alle Methoden bereits vor der Browser-Check Barriere genutzt wurden.

Wenn ich da eines Tages rekursive Dependencies anzeige wird es eine Menge Seiten im Webinterface betreffen...
Man kann es ahnen wenn man die einzelnen Files in der Usage Spalte verfolgt und deren Dependencies anschaut.

Um den Test zu umgehen hab ich die simpelste Lösung auch ohne Adblocker gefunden, ein Bookmark genügt:

Starting with firmware 6.36 you can defeat the Browser-Check by calling https://fritz.box/?nbc=1. (nbc = no browser check)
This will set the gNbc variable (global no browser check, see below) and no further checks occur for this session.
 
Zuletzt bearbeitet:

IPSchorsch

Mitglied
Mitglied seit
7 Apr 2010
Beiträge
322
Punkte für Reaktionen
35
Punkte
28
Selbst mit Chrome aktuell, wird mir auf dem Mac die Ansicht der FB verweigert.
Da musst du wohl echt nochmal auf díe Suche gehen. Meine (aktuellen) Chromes funktionieren auf Windows 10, Linux Manjaro, Android 9 und iPhone 11 (aktuelles iOS).
 

buttercookie42

Neuer User
Mitglied seit
17 Mrz 2021
Beiträge
1
Punkte für Reaktionen
3
Punkte
1
Ich hab jetzt mal einen permanenten Scanner geschrieben der die Abhängigkeiten der JavaScript methoden des Browser-Checks im Detail aufzeigt.
Eine kleine Anmerkung dazu: Es ist nicht Promise.resolve welches akut problematisch ist (das kann Firefox nämlich schon seit Version 29), sondern Promise.finally, welches in Firefox erst seit Version 58 unterstützt wird.

Neben der einfachen Umgehung der Browserprüfung (sei es durch blockieren der browser.js, oder per nbc-Parameter in der URL) gibt es in diesem Fall noch eine weitere Lösungsmöglichkeit, die (abgesehen vom Wechsel auf einen Browser, der Promise.finally nativ unterstützt) eigentlich die sauberste ist: Die fehlende Funktionalität lässt sich in diesem Fall nämlich glücklicherweise auch per Polyfill nachrüsten (hab mir eins von polyfill.io geschnappt), welches man dann z.B. per Userscript auf der Benutzeroberfläche der Fritzbox nachladen kann (theoretisch könnte AVM das gleiche auch von Haus aus tun, aber egal…):
Code:
// ==UserScript==
// @name        Fritz!Box Polyfill
// @namespace   http://www.buttercookie.de
// @include     /https?:\/\/(.+\.)?(my)?fritz\.(box|nas)\//
// @version     1
// @run-at      document-start
// @grant       none
// ==/UserScript==

// Promise.prototype.finally polyfill (polyfill.io)
const promiseFinallyPolyfill = "(function(self, undefined) {function CreateMethodProperty(e,r,t){var a={value:t,writable:!0,enumerable:!1,configurable:!0};Object.defineProperty(e,r,a)}function Get(n,t){return n[t]}function IsCallablen{return'function'==typeof n}function ToObject(e){if(null===e||e===undefined)throw TypeError();return Object(e)}function GetV(t,e){return ToObject(t)[e]}function GetMethod(e,n){var r=GetV(e,n);if(null===r||r===undefined)return undefined;if(!1===IsCallabler)throw new TypeError('Method not callable: '+n);return r}function Type(e){switch(typeof e){case'undefined':return'undefined';case'boolean':return'boolean';case'number':return'number';case'string':return'string';case'symbol':return'symbol';default:return null===e?'null':'Symbol'in self&&(e instanceof self.Symbol||e.constructor===self.Symbol)?'symbol':'object'}}function IsConstructor(t){return'object'===Type(t)&&('function'==typeof t&&!!t.prototype)}function SpeciesConstructor(e,o){var r=Get(e,'constructor');if(r===undefined)return o;if('object'!==Typer)throw new TypeError('O.constructor is not an Object');var n='function'==typeof self.Symbol&&'symbol'==typeof self.Symbol.species?r[self.Symbol.species]:undefined;if(n===undefined||null===n)return o;if(IsConstructor(n))return n;throw new TypeError('No constructor found')}!function(){var t=Function.prototype.bind.call(Function.prototype.call,Promise.prototype.then),o=function(t,o){return new t(function(t){t(o())})};CreateMethodProperty(Promise.prototype,'finally',function(e){var r=this;if('object'!==Typer)throw new TypeError('Method %PromisePrototype%.finally called on incompatible receiver '+Object.prototype.toString.call(r));var n=SpeciesConstructor(r,Promise);if(!1===IsCallable(e))var i=e,c=e;else i=function(r){return t(o(n,e),function(){return r})},c=function(r){return t(o(n,e),function(){throw r})};return t(r,i,c)})}();})('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});";

const scriptElement = document.createElement('script');
scriptElement.textContent = promiseFinallyPolyfill;
const parentElement = document.head || document.documentElement;
parentElement.insertBefore(scriptElement, parentElement.firstChild);
Nach Installation per Greasemonkey o.ä. wird der Browsercheck anstandslos passiert. (Wenn man auf die Fritzbox direkt über die IP-Adresse oder über Myfritz oder anderweitig von außen zugreift, also nicht über die interne fritz.box/fritz.nas/myfritz.box-Domain, muss man das Skript noch für die jeweiligen Domains freischalten, damit es dort ebenfalls geladen wird.)
 

hippie2000

Neuer User
Mitglied seit
20 Jan 2008
Beiträge
144
Punkte für Reaktionen
59
Punkte
28
Eine kleine Anmerkung dazu: Es ist nicht Promise.resolve welches akut problematisch ist (das kann Firefox nämlich schon seit Version 29), sondern Promise.finally, welches in Firefox erst seit Version 58 unterstützt wird.

Guter Hinwes, danke, dann trenne ich die beiden auf und scanne die auch separat.
Die werden zwar zeitgleich getestet, trotzdem ist die Referenz intteressant was wo genutzt wird.

Zur Polyfill Methide werde ich vorerst dein Posting verlinken.
 

Yellow99

Neuer User
Mitglied seit
8 Feb 2020
Beiträge
21
Punkte für Reaktionen
1
Punkte
3
Die fehlende Funktionalität lässt sich in diesem Fall nämlich glücklicherweise auch per Polyfill nachrüsten (hab mir eins von polyfill.io geschnappt), welches man dann z.B. per Userscript auf der Benutzeroberfläche der Fritzbox nachladen kann [...]

Nach Installation per Greasemonkey o.ä. wird der Browsercheck anstandslos passiert.

Hallo, sorry dass ich hiervon so wenig Ahnung hab... ich verwende Firefox 54.0.1 (weil der noch die alten Plugins unterstützt), hab das Script mit Greasemonkey 3.17 installiert, es ist auch aktiv wenn ich auf die Box gehe, aber ich werde trotzdem auf sorry.lua umgeleitet.

Muss ich evtl. noch was anderes machen außer das Script zu installieren / kann mir einer das mit 'von polyfill.io nachrüsten' Schritt-für-Schritt erklären? Oder ist meine Greasemonkey-Version evtl. zu alt?

Was GENAU geht im FritzBox-Menü eigentlich nicht, wenn diese Funktion fehlt? (wenn ich einfach nur browser.js blocke)
 
3CX

Statistik des Forums

Themen
237,879
Beiträge
2,102,241
Mitglieder
360,374
Neuestes Mitglied
ffwit

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.
oder via

IPPF im Überblick

Neueste Beiträge

Website-Sponsoren


Kontaktieren Sie uns bei Interesse