2010-11-29 28 views
13

Est-ce que quelqu'un sait s'il est problématique d'utiliser protocol relative URLs pour une source d'image afin d'empêcher les avertissements de sécurité de contenu mixtes.Prévention des erreurs sécurisées/non sécurisées en utilisant des URL relatives au protocole pour la source d'image

Par exemple lier une image comme:

<img src="//domain.com/img.jpg" /> 

au lieu de:

<img src="http://domain.com/img.jpg" /> 
or 
<img src="https//domain.com/img.jpg" /> 

Dans mes tests, je ne l'ai pas vu quoi que ce soit de suggérer cela est faux, mais je ne suis pas sûr si elle a des cas de bord où il va créer des problèmes.

EDIT Je l'ai vu lancer des erreurs lors de l'utilisation de la fonction getimagesize de PHP.

Répondre

14

un Gotcha intéressant trouvé pour l'utilisation des URL relatives au protocole:

Vous devez être prudent d'utiliser uniquement cette syntaxe dans les pages destinées à navigateurs. Si vous le mettez dans un e-mail, , il n'y aura pas d'URL de la page de base pour utiliser pour résoudre l'URL relative. Dans Perspectives au moins, cette URL sera interprété comme un fichier réseau Windows, pas ce que vous vouliez.

de here

Essentiellement bien qu'il n'y a aucune raison valable pour laquelle cela ne devrait pas fonctionner aussi longtemps que la demande est faite par un navigateur et non un client de messagerie externe.

plus d'info de here:

Une URL relative sans schéma (http: ou https :) est valide, par RTF 3986: Section 4.2. Si un client s'étrangle sur elle, alors il est la faute du client, car ils ne sont pas conformes à la syntaxe URI spécifiée dans la RFC.

Votre exemple est valide et devrait fonctionner. J'ai utilisé cette méthode d'URL relative moi-même sur des sites fortement trafic et n'ai eu aucune plainte. En outre, nous tester nos sites dans Firefox, Safari, IE6, IE7 et Opera. Ces navigateurs tous comprennent ce format d'URL

3

IE 7 et IE 8 seront download stylesheets twice si vous utilisez une URL de protocole relatif. Cela ne vous affectera pas si vous l'utilisez uniquement "pour une source d'image", mais juste au cas où.