ves ver vean son sitio seguras que puedan posible partes pagina observas mixto los las imagenes habilitar este esta eliminar contenido como chrome atacantes ssl image https

ver - ¿Cómo mostrar imágenes no SSL en la conexión HTTPS?



habilitar contenido mixto chrome (7)

Al igual que incluiría una imagen https:

<img src="http://www.google.com/intl/en_ALL/images/logo.gif" />

Sin embargo, algunos navegadores pueden quejarse al usuario de que está cargando recursos inseguros para una página segura. Nada puedes hacer sobre eso.

En mi sitio web https, ¿cómo puedo mostrar imágenes de un sitio web sin un certificado?

Poseo el dominio de ejemplo de:

  • http: // www .example.com
  • http: // static .example.com (usado para mi CDN)

Poseo un certificado para www .example.com pero no para static.ejemplo.com.

En mi dominio www.example.com, puede registrarse para el servicio a través de SSL usando http S : //www.example.com

En el formulario de registro (www.), Deseo mostrar imágenes de mi CDN que está en http: // static.ejemplo.com pero no tengo un certificado para ese subdominio.

En el https: // Formulario de registro de www.example.com: estoy usando AJAX para extraer dinámicamente la imagen de http: // static.example.com. Parece que el navegador web no muestra imágenes que no sean SSL cuando se usa AJAX. Sin embargo, si esa imagen se encuentra en el dominio http S : //www.example.com (igual que el formulario de registro), la imagen se mostrará a través de AJAX.

Por motivos de arquitectura y diseño, me gustaría conservar esas imágenes en mi CDN (static.example.com) sin tener que comprar un certificado.

¿Alguien sabe cómo puedo mostrar estas imágenes a través de AJAX desde mi subdominio que no es SSL en mi http S : //www.example domain?

Gracias por adelantado.


No hay forma de hacerlo sin un certificado para static.example.com que no active una advertencia de seguridad o un aviso en algunos navegadores (particularmente Internet Explorer).

GoDaddy vende certificados SSL por $ 30ish. Diría que es primavera por un poquito de efectivo.


Debe publicar todo el contenido al que se vincula o incrusta (directamente o mediante AJAX) en una página servida a través de HTTPS utilizando https:// referencias.

Una forma de evitar el problema del contenido HTTP simple de terceros es publicar ese contenido a través de un proxy inverso que usa HTTPS, posiblemente en su sitio o un servicio para esto. Puede haber implicaciones legales al hacerlo, dependiendo de si se considera como un mero proxy o duplicación de contenido (tal vez de manera similar a lo que hace la memoria caché de Google). Además, al hacerlo, está respondiendo efectivamente por el contenido que incrusta de esta manera.


Sé que esta es una pregunta muy antigua, pero de todos modos pensé en agregar $ 0.

Estoy asumiendo que el subdominio de http://static.example.com es también un subdirectorio / carpeta de http://www.example.com (IE http://www.example.com/static ) como es el caso con la mayoría de los anfitriones en estos días.

Puede varificar esto, pero navegando a http://www.example.com/static y https://www.example.com/static ... verá la misma página que vería si navega a http: // static. ejemplo.com

Si eso es cierto, puedes alimentar la imagen de esta manera ...

https://www.example.com/static/image.ext

Otra posibilidad para aquellos en el típico shred hosting es usar el certificado compartido que proporcionan muchos proveedores de hosting. Consulte con el soporte de las empresas de alojamiento. Por lo general, son algo como esto ...

https://host.hostcoserver.com/~user/dir/image.ext

Espero que todos encuentren esto útil!



Para extender la respuesta de @Jaka Jančar , ¿NECESITA descargar las imágenes a través de AJAX? Puede reemplazar la llamada AJAX con esto: agregar un elemento IMG dinámicamente.

function load_image_instead_of_ajax_call(dom_parent_element,image_url) { var img = document.createElement(''img''); img.onload = your_success_callback_function; img.onerror = your_error_callback_function; img.src = image_url; dom_parent_element.appendChild(img); }

De esta manera, su recurso de imagen se carga, con una devolución de llamada adecuada en caso de error / error.

Algunos navegadores pueden quejarse de que su página contiene contenido tanto http como https, pero no es muy común (esto parece estar desactivado por defecto en la mayoría de los navegadores).


usted puede hacer su propio proxy ssl.

Ejecuta todas las imágenes a través de este script. Simplemente haga un archivo y coloque este código PHP dentro. Use curl o file_get_contents para repetir el contenido.

Entonces, si desea llamar a la imagen segura, llámala así:

https://mysecureserver.com/path_to_this_script/?url=[base64 encoded image link]

<?php $strFile = base64_decode(@$_GET[''url'']); $strFileExt = end(explode(''.'' , $strFile)); if($strFileExt == ''jpg'' or $strFileExt == ''jpeg''){ header(''Content-Type: image/jpeg''); }elseif($strFileExt == ''png''){ header(''Content-Type: image/png''); }elseif($strFileExt == ''gif''){ header(''Content-Type: image/gif''); }else{ die(''not supported''); } if($strFile != ''''){ $cache_ends = 60*60*24*365; header("Pragma: public"); header("Cache-Control: maxage=". $cache_ends); header(''Expires: '' . gmdate(''D, d M Y H:i:s'', time() + $cache_ends).'' GMT''); //... [and get the content using curl or file_get_contents and echo it out ] } exit; ?>