2009-02-25 19 views
8

Estamos pensando en la parte de nuestro sitio web habilitada para SSL, pero alguna página contiene anuncios de un proveedor externo (como Google AdSense).¿Cómo puedo evitar la advertencia "Esta página contiene elementos seguros y no seguros" en mi navegador?

Creo que esto creará un problema molesto para nuestros usuarios ya que van a ver un mensaje de advertencia como "Esta página contiene elementos seguros y no seguros" cuando ven una página con anuncios. Sin embargo, cuando navego a Gmail con https en lugar de http, no veo esa advertencia en Firefox.

¿Alguien sabe cómo Gmail esconde esto?

Respuesta

15

la documentación de Google indica que se trata de un problema conocido y no ofrece una solución: https://www.google.com/adsense/support/bin/answer.py?answer=10528

+0

si google no lo admite, ¿cómo puedo ver los anuncios? de google cuando inicio sesión en gmail a través de https? – Herman

+0

Google incruste los anuncios directamente en la página y no use ningún mecanismo para incluirlos externamente. – Rob

+1

Gmail recibe un trato especial como otro producto de Google. – ceejayoz

19

alguna página contiene los anuncios de proveedores de terceros (como Google AdSense)

A continuación, el navegador es el adecuado Eso no es seguro

Con AdSense y la mayoría de las demás redes publicitarias, se le proporciona un enlace a JavaScript. Cuando se refiere a cualquier secuencia de comandos externa <>, confía completamente en los contenidos de su página al proveedor de scripts externo. Debes confiar en que solo hagan lo que dicen que van a hacer (mostrar un anuncio), y no algo nefasto como tomar el formulario de inicio de sesión de la página en la que está y robar los valores que escribes en él, o, si El guión "ad" se incluyó en la página de su cuenta bancaria y vaciará automáticamente todo su dinero.

Por lo tanto, las secuencias de comandos externas son un problema de confianza, pero si utiliza un proveedor que proporciona una interfaz HTTPS a sus anuncios, al menos es solo una parte conocida en la que debe confiar. Si el proveedor de publicidad solo tiene una interfaz HTTP, estás enviando tu confianza a cualquiera que pueda tomar el control con un ataque de intermediario o similar. Está reduciendo efectivamente el nivel de confianza de toda su página al de HTTP sin cifrar, por lo que el navegador es bastante correcto al quejarse de que la página no es en realidad más segura que cualquier otro sitio HTTP anterior.

3

ya que esta es la respuesta para la analítica se puede usar esto para no mostrar anuncios en sus páginas seguras

if ("http:" == document.location.protocol) { /*show your adds here*/ } 

Tengo esta idea de la forma en que hago análisis en mis sitios

<script type="text/javascript"> 
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
</script> 

I admitir esto significa que no puede mostrar anuncios en sus páginas seguras, pero es probable que no desee que Google lea los contenidos de sus páginas seguras y muestre sus anuncios de todos modos. (Eso es una excepción y excusas para Google, pero como se mencionó, simplemente no lo admiten)

Para responder a su pregunta sobre GMail ... (usando Firebug aquí, entonces podría interpretar esto incorrectamente)

  1. Inicie sesión en gmail con la conexión siempre segura. Sin anuncios.
  2. Enciendo la consola para ver qué conexiones hace gmail.
  3. Borro la consola
  4. Haga clic en un mensaje que tenga anuncios a la derecha.

Gmail solo realizó dos llamadas. Primero, llega a https://mail.google.com que supongo que es mi correo electrónico.El segundo fue un POST a https://mail.google.com/mail/channel/

Supongo (todos los demás me corrigen) Gmail solicita una publicación de un proxy que sirve los anuncios.

GMail envía contenido a proxy, proxy obtiene anuncios, proxy envía contenido a Gmail. Todo bien.

TOTAL DE supongo que hay

Gracias por la downvote pero ninguna explicación sobre lo que no era útil

2

"¿Alguien sabe cómo ocultar esta Gmail?"

Respuesta corta: utilizan https para buscar los anuncios. Mirando a través de la pestaña de red en Firebug para la carga de la página de GMail veo los anuncios que están en la página en una solicitud con la URL https://mail.google.com/mail/?ui=2&ik=bbff8a9f5c&view=ad&ak=is00jux7yq7kgk730lqdkxklz03d9d8, así que parece que tienen una forma de mostrar anuncios sobre https pero solo para sus propios sitios.

4

si intenta incluir contenido no seguro y controlar lo que se muestra, puede escribir un controlador que tome una URL como parámetro.

Como el controlador está alojado en SSL, puede buscar el html y volver a transmitirlo al navegador a través de SSL. en efecto, actúa como un pequeño proxy para ti.

He hecho esto para una serie de proyectos en el pasado para obtener archivos dentro de una red sin exponer la red real.

utilizando la información aquí: http://www.csharp-station.com/HowTo/HttpWebFetch.aspx fácilmente se podría adaptarlo a tomar un parámetro (el URL real que se desea obtener) ...

por lo que en su página representada que llamarían la https://my.domain.com/pages/HttpWebFetch.aspx?url=http://ads.google.com/ HttpWebFetch.aspx entonces recupera y retransmite el contenido de la página en https, eliminando así las advertencias seguras/inseguras.

+0

interesante ... ¿tiene alguna referencia a este enfoque? ¿Tienes alguna muestra de código? ¿Esto se hace sobre javascript? – Herman

+0

@Mauro: su respuesta convertiría su sitio web en un proxy abierto. Creo que tendrías que encontrar una mejor solución que simplemente pasar la URL como parámetro. Sin embargo, aparte de esa vulnerabilidad, la idea tiene sus méritos :-) – scraimer

+0

@Scraimer, sí, obviamente hay algunos problemas de seguridad que considerar, por ejemplo, puede almacenar la url en un archivo de configuración, encriptarlo, no pasar el real url pero una referencia/identificación de la url etc. Utilicé la URL como parámetro para simplificar. – Mauro

0

Después de cambiar todos mis http: // a https: // (o relativo) todavía tenía este problema, al final me di cuenta de que se debía al almacenamiento en caché. Actualicé mi caché de navegador y estuvo bien. Además, parece que sus enlaces (a href = lo que sea) pueden ser http, esto podría ser obvio para la mayoría, pero no estaba seguro al principio :)

Cuestiones relacionadas