是否可以在HTTP Set-Cookie请求中放置"path"参数前面的通配符?
例:
Set-Cookie: SSID=foo; Domain=.foo.com; Path=/*/Stuff; Secure; HttpOnly
Run Code Online (Sandbox Code Playgroud) 我们有多个Web应用程序副本,它们部署在同一个域的多个路径上.
例:
每个实例维护一组饼干的每一个其定义path为"/" + .getWebDirRoot()-即/abc,/xyz,/abc123
执行以下流程时:
最后一步失败,因为IE我们发送了错误的cookie - 它发送的是http://mydomain.com/abc而不是http://mydomain.com/abc123
这在FireFox中不会发生.(我还没有尝试过任何其他浏览器).
这是一个已知的行为IE(我测试IE9和IE8)?
有没有办法克服它(以程序化的方式)?
注:只是为了澄清,这并没有切换时发生http://mydomain.com/abc到http://mydomain.com/xyz -行为被严格限制流动哪里currentUrl.startswith(urlAssociatedWithCookie) == true
我使用Fiddler检查了行为- 我清楚地看到abc123发送的HTTP请求与cookie的值属于abc.
我还检查了FireFox上的cookie,它们是预期的 - 每条路径创建一个.
我正在尝试检索与我打开的特定页面关联的所有Cookie(我已经过身份验证).有几个与网页相关的cookie,我需要检索每个cookie,以便稍后进行POST.
我尝试了几种方法,但没有人给我完整列表.到目前为止,我已经在VBA中编写了代码,但我也很喜欢它在.NET中.
获得指向IE的指针后的第一次尝试.
arraycookie = Split(ie.document.Cookie, ";")
For i = LBound(arraycookie) To UBound(arraycookie)
Debug.Print arraycookie(i)
Next i
Run Code Online (Sandbox Code Playgroud)
这给了我一些饼干,但不是全部.我可以在开发人员工具(F12)中查看cookie,并且我确认没有cookie标记了仅HTTP标记.见下图.
我也试过了InternetGetCookie windows API.它返回一个cookie,但只返回一个,无论名称是什么,它都是相同的(例如下面的FedAuth).
Private Sub GetCookieAttempt()
Dim sCookieVal As String * 256
Dim bRet As Boolean
bRet = InternetGetCookie("https://mywebsiteaddresshere.com", _
"FedAuth", sCookieVal, 255)
If bRet = False Then
MsgBox "Failed"
Else
MsgBox sCookieVal
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
这只是一个猜测(任何想法我怎么能找到?),但从我读到的可能是cookie受到保护.我看了一下IEGetProtectedModeCookie API,但我无法让它返回cookie信息.
不知道为什么我可以通过开发人员工具看到这一点,但是当我尝试公开信息时,它并不会返回所有内容.
任何帮助将不胜感激 :)
谢谢!
编辑
因此,在深入研究这个问题后,我想我会尝试使用不同的浏览器访问相同的网页并再次查看Cookie详细信息.
使用Firebug我试图检索的cookie现在显示HTTPOnly标志.根据我的理解,我可以使用InternetGetCookieEx并指定INTERNET_COOKIE_HTTPONLY标志.但是我不能让它返回任何东西.
有没有人有我可以效仿的工作样本?
我试图找到以下问题的答案。
csrftokencookies?csrftoken存在的位置,还是技术上有效?我附上了一个示例屏幕截图,显示了我在csrftoken各种 cookie 路径和到期时间(多租户和各种表单路径)中看到的多个内容。
有关的:
我正在使用 jQuery Cookie 插件 ( https://github.com/carhartl/jquery-cookie ),但在我的网站上的不同页面上保留我的 cookie 时遇到了问题。
我有一段内容显示在每个页面上,一旦隐藏,它就会像这样设置 cookie(对所有变量表示歉意,它们根本不相关:
// Binds the close event to the button.
$alert.on('click', function(e) {
$alertWrap.fadeOut();
// Sets the breaking-delete cookie to yes.
$.cookie('breaking-bar-delete', 'yes', {expires: 7 });
});
Run Code Online (Sandbox Code Playgroud)
当初始脚本触发时,它会检查 cookie 是否存在:
// If the current bar is not supressed and they are not in the editor, and they do not have a closed cookie it will setup the bar.
if ($.cookie('breaking-bar-delete') == undefined) {
$alert.css("display","block");
}
// If there's no news, or …Run Code Online (Sandbox Code Playgroud)