ASP classique: Comment vérifier si aspsessionid ne* cookie a été marqué comme sécurisé?
Je suis en train de marquer l'ID de session ASP cookie comme HttpOnly mais n'arrive pas à trouver un moyen de dire si c'est de travail. L'environnement, je suis en train d'essayer ce est comme suit:
Système d'exploitation: Windows Server 2003
IIS: 6
ASP Version: ASP 3 (ASP Classique)
Afin de marquer le cookie http seule, j'ai suivi MME KO
Que par notre architecte suggestion, pour tester si cela fonctionne, un javascript document.cookie ne devrait pas être en mesure de lire les aspsessionid ne* cookie. Mon problème est que javascript:alert(document.cookie) résonne encore l'aspsessionid ne* cookie, mais il semble être chiffré(?)
J'ai aussi essayé de le faire via la Réponse.AddHeader "Set-Cookie", mais ne peut pas déterminer la valeur à donner pour cet en-tête pour marquer tous les cookies OU AU MOINS l'ID de Session ASP cookie comme HttpOnly.
À l'aide!!!
Secure
drapeau, et la question est à propos de la HttpOnly
drapeau. Ils n'ont pas le même but. Pouvez-vous effacer la confusion s'il vous plaît?OriginalL'auteur Sudhanshu Mishra | 2010-01-20
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que votre architecte est correcte concernant l'accès au cookie en javascript.
Il n'y a pas de raison d'arrêter l'exécution de javascript dans votre page d'accéder au cookie, pas plus que javascript accéder au reste de vos données dans le format HTML.
Le but de l'ajout de l'sécurisé qualifier pour un cookie est pour l'empêcher d'être envoyé dans un unsecure demande.
Oridinarily des cookies lorsque le client est connecté à l'aide de
https
sera envoyé lorsque des demandes sont faites sur le même serveur à l'aide de la plainehttp
. Le marquage d'un cookie avec le secure qualifier lors de sa indique au client qu'il ne doit être envoyé dans les demandes ultérieures si ces demandes sont à l'aide dehttps
.Donc pour tester votre configuration vous obtenez une copie de fiddler, que l'exécution de frapper le serveur via le protocole https, puis dans la même session du navigateur frappé de la même position avec seulement http. Fiddler devrait montrer la deuxième requête au serveur et il ne devrait pas être un ASPSESSION cookie présent.
Secure
drapeau mais sur leHttpOnly
drapeau, qui vise à interdire code JavaScript pour voir le cookie. Donc, son architecte est correct dans le moyen de vérifier cela, et cette réponse, la pensée accepté, est faux. (Certes, la confusion vient du titre.)OriginalL'auteur AnthonyWJones
Viens de tomber sur ce problème à cause d'un "nouveau" conformité à la norme PCI élément. C'est un peu maladroit, mais cela semble fonctionner:
Voici comment le faire en utilisant le web.config: stackoverflow.com/q/36045022/901156. Fonctionne très bien, sauf si vous avez une erreur 404 en effet. Toujours à essayer de comprendre que l'on...
Cette réponse est une atténuation au mieux. Cette solution permet le cookie de session être définie non garantis, d'abord, puis sur le suivant demande du client, il patches pour la fixer. @rdev5 solution dans son lié question, c'est mieux.
OriginalL'auteur Stephen
Vous semblez confondre entre la sécurité et HTTPONLY
Ceux-ci sont différents. L'article base de connaissances microsoft vous référer à l'est pour SÛR.
La définition d'un cookie SÉCURISÉ va arrêter IIS/Navigateur de l'envoi de l'ID de Session ASP sur HTTP.
Cookies HTTPONLY va cesser de script (javascript) d'accéder à la valeur dans la plupart des navigateurs.
Il ya une très BONNE raison pour définir HTTPONLY sur un sessionID cookie. Il aide à prévenir le vol des utilisateurs sessionID cookie, ce qui pourrait conduire au détournement de session. C'est pourquoi les principaux navigateurs ont mis en œuvre.
Réaliser que c'était sans doute un peu tard pour vous, j'ai ajouté le commentaire de quelqu'un d'autre qui a trébuché à travers des réponses trompeuses
voir ce question, il existe un moyen de le faire avec le UrlRewrite extension IIS, a expliqué dans ma réponse.
OriginalL'auteur Steve Wombat