2010-12-06 2 views
0

Création d'un site Web MVC 2.0 et utilisation de Content Delivery Network (CDN) dans mon Site.Master. J'utilise le CDN suivant:Réseau de diffusion de contenu activé par SSL dans ASP.NET MVC

  • Yahoo reset-fonts-grids.css
  • jQuery 1.4.2
  • jQuery Validation

Tous ces CDN sont livrés à l'aide http: //

Mon site Web prend actuellement en charge les pages SSL et non SSL. Lorsque vous naviguez vers les pages compatibles SSL, je reçois une erreur parce que le CDN sont liés à HTTP: //

Même si je suis conscient que vous pouvez utiliser une version SSL de CDN mais ma question est plutôt:

Depuis que j'ai des pages non-SSL et SSL tous partageant les mêmes * Site.Master * que dois-je faire? Dois-je simplement obtenir la version SSL pour les pages SSL et non-SSL? Ou devrais-je faire un peu de "if ... else"?

Avantages ou inconvénients à l'une de ces approches?

Merci

Répondre

-1

if ... else semble la solution la plus viable, même si vous pouvez toujours utiliser SSL et oublier tout.

Les avertissements concernant les pages avec un contenu à sécurité mixte sont raisonnables, car les scripts peuvent être exploitables sur des connexions non sécurisées. Pensez à un site Web bancaire avec un script piraté qui transmet le balisage HTML de l'historique de votre compte à un utilisateur malveillant.

Il est inutile d'utiliser une instruction if - else pour vérifier la chaîne de protocole à ajouter à l'URL d'une ressource externe, même les performances (les vérifications sont effectuées en microsecondes ...), cependant, sur les performances, l'inconvénient de toujours utiliser SSL, bien que non nécessaire, est présent, car le navigateur devra établir une connexion sécurisée (protocole de transfert SSL/TLS) et effectuer de nombreuses opérations cryptographiques inutiles.

Je voudrais aller pour le if - else, et puisque vous utilisez une page maître, vous avez moins de places dans votre code à modifier!

+0

Merci djechelon! Peut-être que je vais avec l'approche If ... else! Je suis curieux ... Que faire si au lieu d'utiliser SSL ou non-CDN, à la place simplement ajouter les fichiers dans un dossier dans mon projet et un lien vers ces fichiers ... même si cela serait contraire à l'objectif de CDN, mais il résoudre mon problème aussi? – Vlince

+0

Vous avez dit par vous-même ... que cela annulerait le but du CDN, mais, oui, cela serait corrigé puisque les URL relatives sont correctement mappées à SSL/non-SSL. –

+3

il n'y a aucun intérêt à le faire quand vous pouvez utiliser "//" la première partie de votre URL vers le CDN si elle prend en charge les deux protocoles. Aucun if-else nécessaire. Les RFC sont utiles à lire. –

6

Désolé, voici les vrais gens de réponse. S'il vous plaît lisez la suite pour vous éclairer. Oubliez de faire le junk if else que vous avez fait dans le passé pour la vérification du protocole BS.

Pour les CDN prenant en charge SSL, tels que Amazon Cloudfront ou Microsoft CDN, omettez complètement le protocole. OUI, je l'ai dit. Omettez le protocole entièrement et arrêtez de faire si autre test. Je fais cela pour tous mes sites e-commerce. Le petit fait astucieux que beaucoup de gens ignorent est que le protocole force l'URL à utiliser le protocole utilisé par l'URL du site, donc si vous utilisez SSL, bam, SSL, etc. les navigateurs implémentent ceci.

Par exemple, toutes mes ressources image CDN et les fichiers statiques etc utiliser les URL comme ceci:

<img src="//d34ic8my8k87as.cloudfront.net/img/web/success-icon.png" /> 

Si vous lisez spécifications sur RFCs et Internet, vous trouverez des trucs cachés sous votre nez. Vous pouvez voir mon profil pour certains sites en direct. J'espère que cela pourra aider.

+1

Bonne réponse! Les RFC sont vraiment utiles à lire. Malheureusement, je n'ai lu que ceux liés à Syslog dans leur intégralité :) +1 –

+1

Merci, je faisais si-autre pendant si longtemps moi-même et accidentellement trouvé ce fait en regardant un RFC pour les URL car je ne me souviens pas quoi " ./" fait. SSL est alors devenu trivial en utilisant des ressources extérieures. Cela fonctionne aussi pour le contenu Google CDN. –

Questions connexes