2011-11-22 27 views
18

¿Cómo ocultar las solicitudes ajax de la consola Firebug o cualquier cosa que muestre llamadas ajax?¿Cómo ocultar las solicitudes de ajax desde la consola Firebug?

+0

¿Por qué? Para su propia conveniencia? ¿O como una característica de "seguridad"? – Thilo

+0

Por razones de seguridad. – niksmac

+10

"Por razones de seguridad". Si está pensando en protegerse de los piratas informáticos de esta manera, eso no funcionará. No puede ocultar las actividades del navegador al usuario que ejecuta ese navegador. Incluso si puede convencer al usuario de no mirar (y al 99% de los usuarios no le importará Firebug), no debe confiar en eso para cosas relevantes para la seguridad. – Thilo

Respuesta

7

Realice JSONP llamadas. Las llamadas JSONP no son solicitudes ajax reales (porque no usan el objeto XMLHttpRequest, y simplemente insertan una etiqueta de script en el DOM). Pero no se mostrarán en Firebug.

+4

Firebug los mostraría en la pestaña "Red" (donde muestra imágenes, css, etc.), ¿no? – Thilo

+1

Sí, todavía puedes rastrearlo en las pestañas * Net *. –

+1

JSONP no es posible implementar en esta etapa ya que he cubierto mucho con este proyecto. Cualquier otra sugerencia ? – niksmac

1

No creo que pueda ocultar por completo las llamadas de ningún software de detección debido a que algunos paquetes de software de detección funcionan en un nivel muy bajo (tan bajo que no se puede acceder desde el navegador/código)

Si desea enmascarar una llamada (por ejemplo, ocultar a dónde va la llamada), puede enviarla a un servidor propio y luego el servidor puede realizar la llamada por sí mismo (utilizando algunos comandos enmascarados).

como llamar http://myserver.com/doCommand?command=cmd1&parameter1=param1&parameter2=param2

y el servidor puede tener la lógica que leerá el comando y los parámetros, ejecutarlos y luego informar de los resultados. De todos modos, la llamada entre el cliente (navegador) y su servidor puede ser capturada por el software de detección.

Es muy parecido a un proxy. El cliente puede ver qué le ocurre al proxy, pero no sabrá qué sucederá después.

De todos modos, parece que tienes un problema con la arquitectura en sí después de enmascarar las llamadas de la persona que llama y no del mundo exterior.

11

Por favor llame a esta función después de ajax susses o no

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

O

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

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

Todavía estará visible en la pestaña de red – San

+2

Esto también borrará el resto de la información de depuración. Estoy esperando, el asker solo quiere eliminar el ruido extra de la consola. –

0

Similar a lo que Saeed estaba diciendo con JSONP, podría cambiar el origen de una imagen/archivo/script " src "atributo. El servidor enviará la solicitud cuando cambie, lo que permite comunicarse con el servidor. No lo he intentado pero estoy buscando implementarlo para algo.

4

Utilice una abrazadera web binaria.

Aunque algunos navegadores todavía permiten a los usuarios "inspeccionar" el contenido de los paquetes de websocket en algunos casos, esto generalmente está restringido a websockets de solo texto y mucho más difícil para datos binarios ... y definitivamente no aparecerá en la consola.

Este es el enfoque que Livereload (http://livereload.com/) utiliza para evitar el correo basura de la consola con solicitudes ajax que hacen que el uso de la consola para la depuración real sea significativo.

Obviamente, como las otras publicaciones en este hilo han indicado que no se puede evitar que alguien realmente atrape solicitudes utilizando herramientas como Wireshark; pero podría decirse que un zócalo web binario desalentaría el 90% de las alteraciones ocasionales que podría obtener con las solicitudes ajax estándar.

+1

Hasta para aclararlo no es posible pero desalentará a la mayoría de las personas. –

3

He intentado con jQuery pero siempre usé llamadas ajax normales.Según los documentos: las solicitudes con tipo de datos "JSONP" o "script" y el tipo "GET" deberían dar como resultado el modo de transporte "script". Funciona de la siguiente manera:

lado del cliente:

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

lado del servidor:

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

Enfoque interesante, pero solo para estar seguro: elimina el guión del encabezado y lo vuelve a agregar después de la solicitud. El servidor escupe un nuevo encabezado y simplemente envía un mensaje de confirmación al depurador. Sin embargo, ¿cómo se evita que getRefreshed aparezca en la consola en la consola? ¿Alguien ha probado esto? – Armfoot

Cuestiones relacionadas