Comment cacher les requêtes ajax de la console firebug?
7 réponses
JSONP appels. Les appels JSONP ne sont pas de vraies requêtes ajax (parce qu'ils n'utilisent pas XMLHttpRequest
et ils injectent simplement une balise de script dans le DOM). Mais ils ne seront pas montrés dans Firebug.
Veuillez appeler cette fonction après ajax susses ou échouer
$('.result').load('testtemplateboth/testpagetpl');
clearconsole();
OU
$('.log').ajaxComplete(function() {
clearconsole();
$(this).text('Triggered ajaxComplete handler.');
});
function clearconsole() {
console.log(window.console);
if(window.console || window.console.firebug) {
console.clear();
}
}
comme décrit ici (https://getfirebug.com/wiki/index.php/Console_Panel), Vous pouvez le définir dans l'onglet about:config, en changeant les extensions.firebug.showXMLHttpRequests value.
utilisez un websocket binaire.
bien que certains navigateurs permettent encore aux utilisateurs d '"inspecter" le contenu des paquets websocket dans certains cas, cela est généralement limité aux websockets texte seulement et beaucoup plus difficile pour les données binaires... et ne se montrera certainement pas dans la console.
This is the approach that Livereload (http://livereload.com/) utilise pour éviter de spammer la console avec des requêtes ajax qui font utiliser la console pour un vrai débogage significatif.
évidemment comme les autres billets dans ce thread vous ont indiqué ne peut pas empêcher quelqu'un de réellement attraper des requêtes en utilisant des outils tels que Wireshark; mais sans doute une socket web binaire découragerait 90% de la falsification occasionnelle que vous pourriez obtenir avec des requêtes ajax standard.
j'ai essayé jQuery mais il a toujours utilisé des appels ajax normaux. Selon la doc: les requêtes avec le type de données "JSONP" ou " script "et le type" GET "doivent avoir le mode de transport" script". Il fonctionne de cette façon:
côté Client:
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);
côté Serveur:
if(isset($_GET['getRefresh'])){
header("Content-Type: text/javascript");
die("console.log('OK');");
}
Je ne pense pas que vous serez en mesure de cacher complètement les appels de n'importe quel logiciel de sniffing en raison du fait que certains paquets de logiciel de sniffing fonctionnent à un niveau très bas (si bas que vous ne pouvez pas réellement y arriver à partir du navigateur / code).
si vous voulez masquer un appel (par exemple cacher où l'appel va) vous pouvez l'Envoyer à un serveur de votre propre et puis le serveur peut faire l'appel lui-même (en utilisant quelques commandes masquées).
Comme appeler http://myserver.com/doCommand?command=cmd1¶meter1=param1¶meter2=param2
et le serveur peut avoir la logique qui lira la commande et les paramètres, les exécutera et les rapportera ensuite avec les résultats. Quoi qu'il en soit, l'appel entre le client (navigateur) et votre serveur peut être intercepté par le logiciel sniffing.
c'est un peu comme une procuration. Le client peut voir ce qui va au mandataire, mais il ne saura pas ce qui se passe ensuite.
de toute façon il se sent un peu comme si vous aviez un problème avec l'architecture elle-même après que vous allez masquer les appels de l'appelant et pas le monde extérieur.
similaire à ce que Saeed disait avec JSONP, vous pourriez changer la source d'un attribut image/file/script "src". Le serveur envoie la requête lorsqu'elle change, ce qui permet de communiquer avec le serveur. Je n'ai pas essayé, mais j'envisage de le mettre en œuvre moi-même.