Как скрыть ajax-запросы от консоли firebug? - PullRequest
19 голосов
/ 22 ноября 2011

Как скрыть запросы ajax от консоли firebug или чего-либо, что показывает вызовы ajax?

Ответы [ 7 ]

11 голосов
/ 30 января 2012

Пожалуйста, вызовите эту функцию после успешной или неудачной попытки ajax:

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

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

ИЛИ

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

function clearconsole() { 
  console.log(window.console);
  if(window.console || window.console.firebug) {
   console.clear();
  }
}
8 голосов
/ 18 марта 2014

Как описано здесь (https://getfirebug.com/wiki/index.php/Console_Panel),, вы можете установить его на вкладке about: config, изменив значение extensions.firebug.showXMLHttpRequests.

7 голосов
/ 22 ноября 2011

Сделать JSONP звонков.Вызовы JSONP не являются настоящими ajax-запросами (поскольку они не используют объект XMLHttpRequest и просто вводят тег сценария в DOM).Но они не будут показаны в Firebug.

5 голосов
/ 06 июля 2014

Используйте двоичную веб-розетку.

Хотя некоторые браузеры все еще позволяют пользователям «проверять» содержимое пакетов веб-сокетов, в некоторых случаях это обычно ограничивается только текстовыми веб-сокетами и намного сложнее для двоичных данных ... и, безусловно, не будет отображаться в консоль.

Этот подход используется Livereload (http://livereload.com/)), чтобы избежать спама в консоли с помощью запросов ajax, которые делают использование консоли для реальной отладки значимым.

Очевидно, как и в других сообщениях в этой теме, вы не можете помешать кому-либо фактически перехватывать запросы с помощью таких инструментов, как Wireshark; но, возможно, двоичный веб-сокет будет препятствовать 90% случайного вмешательства, которое вы можете получить с помощью стандартных запросов AJAX.

3 голосов
/ 10 сентября 2014

Я пробовал jQuery, но он всегда использовал обычные вызовы ajax.В соответствии с документами: запросы с типом данных «JSONP» или «script» dataType и «GET» должны приводить к транспортному режиму «script» .Это работает следующим образом:

Клиентская сторона :

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);   

Серверная сторона :

if(isset($_GET['getRefresh'])){
    header("Content-Type: text/javascript");
    die("console.log('OK');");
}
1 голос
/ 22 ноября 2011

Я не думаю, что вы сможете полностью скрыть вызовы от любого программного обеспечения для сниффинга из-за того, что некоторые пакеты программного обеспечения для сниффинга работают на очень низком уровне (настолько низком, что вы фактически не можете получить его из браузера / кода).

Если вы хотите замаскировать вызов (например, скрыть, куда идет вызов), вы можете отправить его на свой собственный сервер, а затем сервер может сделать вызов сам (используя некоторые маскированные команды).

Как и при вызове http://myserver.com/doCommand?command=cmd1&parameter1=param1&parameter2=param2

И сервер может иметь логику, которая будет считывать команду и параметры, выполнять их и затем сообщать о результатах.В любом случае, вызов между клиентом (браузером) и вашим сервером может быть перехвачен программным обеспечением сниффинга.

Это очень похоже на прокси.Клиент может видеть, что идет на прокси-сервер, но он не знает, что будет дальше.

В любом случае, он чувствует себя немного так, как будто у вас возникла проблема с самой архитектурой после того, как вы выполните маскировку вызовов от вызывающегоне внешний мир.

0 голосов
/ 04 февраля 2012

Подобно тому, что Saeed говорил с JSONP, вы можете изменить источник атрибута image / file / script "src". Сервер отправит запрос, когда он изменится, что позволит установить связь с сервером. Я не пробовал этого, но сам пытаюсь что-то реализовать.

...