it-swarm.com.de

Wie verstecke ich Ajax-Anfragen von der Firebug-Konsole?

Wie verstecke ich Ajax-Anfragen von der Firebug-Konsole oder von allem, was Ajax-Aufrufe anzeigt?

19
niksmac

JSONP aufrufen. JSONP-Aufrufe sind keine echten Ajax-Anforderungen (da sie kein XMLHttpRequest-Objekt verwenden und einfach ein Script-Tag in das DOM einfügen). Sie werden aber nicht in Firebug gezeigt.

7
Saeed Neamati

Bitte rufen Sie diese Funktion nach dem Erfolg von Ajax auf oder schlagen Sie fehl:

$('.result').load('testtemplateboth/testpagetpl');
clearconsole();

function clearconsole() { 
  console.log(window.console);
  if(window.console || window.console.firebug) {
   console.clear();
  }
}

ODER 

$('.log').ajaxComplete(function() { 
  clearconsole();
  $(this).text('Triggered ajaxComplete handler.');
});

function clearconsole() { 
  console.log(window.console);
  if(window.console || window.console.firebug) {
   console.clear();
  }
}
11
Vinoth M

Wie hier beschrieben ( https://getfirebug.com/wiki/index.php/Console_Panel ), können Sie es in der Registerkarte about: config festlegen und den Wert extensions.firebug.showXMLHttpRequests ändern.

8
rashtao

Verwenden Sie einen binären Websocket.

Obwohl einige Browser den Benutzern in einigen Fällen immer noch ermöglichen, den Inhalt von Websocket-Paketen zu "inspizieren", ist dies im Allgemeinen auf reine Text-Websockets beschränkt und für binäre Daten viel schwieriger ... und wird definitiv nicht in der Konsole angezeigt.

Dies ist der Ansatz, den Livereload ( http://livereload.com/ ) verwendet, um das Spamming der Konsole mit ajax-Anforderungen zu vermeiden, die die Verwendung des Pults für echtes Debuggen sinnvoll machen.

Wie in den anderen Beiträgen in diesem Thread bereits erwähnt, können Sie nicht verhindern, dass jemand tatsächlich Anfragen mit Tools wie Wireshark abfängt; Ein binärer Web-Socket würde jedoch wahrscheinlich 90% der zufälligen Manipulationen entmutigen, die bei Standard-Ajax-Anforderungen auftreten könnten.

5
Doug

Ich habe jQuery ausprobiert, aber es wurden immer normale Ajax-Aufrufe verwendet. Laut den Dokumenten: Anforderungen mit "JSONP" oder "script" sollten vom Datentyp und vom Typ "GET" den Transportmodus "script" ergeben . Es funktioniert so:

Client-Seite :

var h = $('head')[0];
var e = document.createElement('SCRIPT');
e.src = "/c.php?getRefresh=1"+("&_="+(+new Date()));
e.onload = function(){
    //script from server executed       
    h.removeChild(e);
}
h.appendChild(e);   

Serverseite :

if(isset($_GET['getRefresh'])){
    header("Content-Type: text/javascript");
    die("console.log('OK');");
}
3
user669677

Ich glaube nicht, dass Sie Anrufe vor Sniffing-Software vollständig ausblenden können, da einige Sniffing-Softwarepakete auf einem sehr niedrigen Niveau arbeiten (so niedrig, dass Sie nicht wirklich über Browser/Code dorthin gelangen).

Wenn Sie einen Anruf maskieren möchten (z. B. ausblenden, wo der Anruf stattfindet), können Sie ihn an einen eigenen Server senden. Der Server kann dann den Anruf selbst ausführen (mithilfe einiger maskierter Befehle).

Wie beim Aufruf von http://myserver.com/doCommand?command=cmd1&parameter1=param1&parameter2=param2

Der Server kann über die Logik verfügen, die den Befehl und die Parameter liest, sie ausführt und dann die Ergebnisse zurückmeldet. Der Anruf zwischen dem Client (Browser) und Ihrem Server kann jedoch von der Sniffing-Software abgefangen werden.

Es ist sehr ähnlich wie ein Stellvertreter. Der Client kann sehen, was an den Proxy geht, aber er weiß nicht, was als nächstes passiert.

Trotzdem fühlt es sich ein bisschen so an, als ob Sie ein Problem mit der Architektur selbst haben, nachdem Sie Anrufe vom Anrufer maskiert haben und nicht von der Außenwelt.

1
Pavel Donchev

Ähnlich wie Saeed mit JSONP sagte, könnten Sie die Quelle eines "src" -Attributs von image/file/script ändern. Der Server sendet die Anforderung bei Änderungen, sodass die Kommunikation mit dem Server möglich ist. Ich habe es nicht ausprobiert, aber ich schaue mir die Implementierung für etwas selbst an.

0
cjroth