Se usa combinado con cookies, y consiste en una imagen gráfica transparente, usualmente no mayor a 1 x 1 píxel, que es colocada en una página web o en un email y que es usado para monitorear el comportamiento de un visitante. Cuando un navegador carga la imagen, se almacena información del usuario, como el tiempo que permanece en la página, el tipo de navegador, la dirección IP, etc. Cuando el usuario solicita una página con un Web Bug, el bug manda una petición al servidor de la empresa del Web Bug, donde se rastrea la permanencia y referencias del usuario.
Otro uso desde la Wikipedia:
Web bugs en mensajes de correo electrónico
Un web bug se puede utilizar para averiguar si un mensaje de correo electrónico particular ha sido leído por alguien y, si es el caso, cuándo se leyó el mensaje, entre otras referencias ya mencionadas.
Normalmente, la URL de los web bugs contenidos en e-mails tiene un identificador único. Este identificador se escoge cuando se envía el e-mail y se graba a la vez que el propio e-mail.
La descarga posterior de la URL con ese identificador, indica que ese e-mail en particular ha sido leído por ese destinatario específico. El emisor del e-mail es así capaz de grabar el momento exacto en el que es leído y la dirección IP del ordenador o el servidor proxy a través del que estaba conectado. De esta manera el emisor obtiene información detallada sobre cuándo y dónde lee cada receptor el e-mail. Cada vez que se muestra el mensaje en la pantalla del usuario, se solicitan de nuevo los datos de la imagen (y puede registrarse cada lectura).
Los formularios HTML pueden contener Web-beacons con código dañino que pueda ser usado para saltarse filtros de correo, etc...
En OWA podemos deshabilitar Web Beacons y HTML forms. Más info.
Ejemplo de irongeek en el que se ve como se le pasan parámetros a un server al cargar una falsa imagen:
<script language="javascript" type="text/javascript"> <!-- document.write("<img width=0 height=0 src=\"http://tux.irongeek.com/webbug.php?adc," +unescape(navigator.appName) +","+screen.width+"x"+screen.height +","+navigator.javaEnabled() +","+screen.pixelDepth +","+screen.colorDepth+"," +escape(document.referrer)+"\">"); // --> </script>