2011-07-05 5 views
18

J'essaie de détecter si la page en cours est diffusée via SSL afin de décider d'inclure ou non certaines ressources externes non sécurisées. Ma méthode actuelle consiste à vérifier si request.url commence par "https". Est-ce la manière la plus simple d'accomplir cela? Y a-t-il un meilleur moyen? Merci!Déterminez si la page en cours utilise SSL dans Rails

Répondre

34

Dans un contrôleur ou une vue:

request.ssl? 
+1

fonctionne également dans les vues (par exemple, pour montrer un badge SSL pour les requêtes https) –

+0

En fait, je pense vérifier que le protocole a « https » va être beaucoup plus sûr que cela. L'en-tête pourrait être manipulé en transit. Tout ce que vous vérifiez avec request.ssl? est @env ['HTTPS'] == 'on' || @env ['HTTP_X_FORWARDED_PROTO'] == 'https' Attendu que le chemin complet, étant la requête et ayant le protocole, n'a pas pu être usurpé. http://apidock.com/rails/ActionController/Request/ssl%3F – saneshark

+1

Je me suis trompé, l'en-tête entier est crypté et ne peut pas être falsifié en transit. – saneshark

Questions connexes