- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是通过 phantomjs 脚本重播一组 ASP.NET 表单例份验证 session cookie。
我的 phantomjs 脚本如下。如果我将 cookie 重播到本地 VS2010 ASP.NET 开发服务器中托管的网站,该脚本就会起作用。但是,如果我在 IIS6 上托管的网站上尝试相同的代码,重播就会失败。
当代码在 IIS7 上运行时,重放似乎工作正常
注意:我确实意识到两个不同 session (IIS 和 ASP.NET 开发服务器)的身份验证 cookie 是不同的,并且我为每个 session 使用正确的 cookie。
我怀疑有:
var page = require('webpage').create();
var tests = {
'localhost': {
url: 'http://localhost/Test.aspx',
cookies:
[{
"name":"ASP.NET_SessionId"
,"value":"abcdefghijk"
,"domain":'localhost'
},{
"name":".ASPXFORMSAUTH"
,"value":"2D23D9EFF2F538..."
,"domain":'localhost'
}]
},
'www.myserver.com': {
url: 'http://www.myserver.com/Test.aspx',
cookies:
[{
"name":"ASP.NET_SessionId"
,"value":"lmnopqrstuv"
,"domain":'www.myserver.com'
},{
"name":".ASPXFORMSAUTH"
,"value":"9EFF2F53823BDA..."
,"domain":'www.myserver.com'
}]
}
};
// uncomment the test you want to perform
var test = tests['localhost'];
// var test = tests['www.myserver.com'];
phantom.addCookie(test.cookies[0]);
phantom.addCookie(test.cookies[1]);
page.open(test.url, function (status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
console.log(page.content);
}
phantom.exit();
});
由于该问题仅发生在我的开发环境中:作为解决方法,我创建了一个将返回 session 和身份验证 cookie 的 Web 服务。然后从我的 PhantomJS 脚本中打开该服务,以便将 cookie 添加到当前的 PhantomJS 上下文中。然后我会打开我所定位的真实网址。在没有实际验证用户身份的情况下传递我们的身份验证 cookie 有点安全漏洞,因此我将其包装在编译器指令中,以便它在生产版本中不可用。
C#
HttpContext.Current.Response.Cookies.Add(FormsAuthentication.GetAuthCookie(username, true, "/"));
js:
page.open(authUrl, function (status) {
page.open(address, function (status) {
});
});
最佳答案
每台机器都使用自己特定的机器 key 来加密 cookie。因此,您实际上无法从一台机器上获取 cookie 并在另一台机器上使用它。仅当您在两台计算机上设置相同的 key 时,这才有效,您可以通过 google 搜索更多详细信息,因为这是一项常见任务(当您拥有网络场时,拥有相同的 key 至关重要)。
此外,cookie 中编码的值之一是其超时。这意味着只能在很短的时间窗口内重播(默认为 20 分钟)。较早发出的 Cookie 将被拒绝。这样,asp.net 就可以防御过旧 cookie 的重播攻击。
最有可能的是,您的场景中出现了这两个问题之一。
编辑:在您澄清后,出现了另一个可能的原因:您的 phantomjs 客户端缺少允许 asp.net 识别客户端支持 cookie 的 header 。常见的解决方法是在服务器上安装 net 4.5。不常见的是将参数添加到表单例份验证设置中:
<authentication mode="forms">
<forms ... cookieless="UseCookies" />
强制 cookie 支持。
关于asp.net - 通过 phantomjs 将表单例份验证 session cookie 重播到 ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20712150/
我想在 vim 中从光标到缓冲区末尾的打开缓冲区的每一行上运行我刚刚在寄存器“x”中记录的宏。我该怎么做? 我知道我可以重播宏 n 次: 15@x ...或者只需按住 @ 直到到达最后一行,但我只想按
因此,我最近尝试学习html5知识,并获得了音频标签。在PC的浏览器Chrome上似乎可以正常工作,但在Android(4.0,同时使用常规浏览器和海豚)上却不能正常工作。它将播放一次音频,但不会再播
我有兴趣使用 PHP 构建一个解析器来享受我的乐趣。我需要知道什么?你对我有什么建议?我什至如何使用 PHP 打开星际争霸 2 重播? 最佳答案 SC 回放文件实际上是一个 MPQ 存档文件。此 MP
我有一个使用 Animate.CSS 的动画如果用户愿意,我想重播,但我尝试的方法不起作用。这是代码: HTML:
在 ASP.NET MVC 中防止一个有效 cookie 一次被多个客户端使用的“最佳实践”是什么? 在这种情况下,我们使用了所有 OWASP 技巧。 严格的 HSTS:每个页面都使用 HTTPS/S
我有一个 AVPlayer 类,全部设置为流式传输音频文件。它有点长,所以我不能在这里发布整个内容。我坚持的是如何让用户在听完一次音频文件后重播。当它第一次完成时,我正确地收到通知 AVPlayerI
我正在尝试用 sipp 重播捕获的 pcap 文件。我的设置有 2 台电脑和一个代理。接收电脑有 linphone,应该能够接听来自另一台发送带有 sipp 的 pcap 文件的电脑的调用。我已经用
我有一个网页,如果应用了某些样式,滚动时可能会出现卡顿。我的问题是如何系统地测试个人风格的效果。我不想每次都手动向下滚动页面,我想执行一些可复制的操作,以便轻松比较两个不同样式表的效果。是否可以录制和
我想从 Clojurescript 建立一个 Om session ,它可以在另一台机器上回复整个 GUI。我如何才能将原子从客户端传递到服务器,以便只发送更改,以便可以在其他地方重播更改历史? 更新
我一直在使用 React Native Video 模块并且它工作得很好,但是我需要播放结束时的视频自动倒回到开头。视频实例可以选择使用: onEnd={this.onEnd} 视频播放结束后调用一个
我的计算机上有一些虚拟机,它们通过主机专用网络相互通信。 我想模拟这些机器之间的中间人攻击。我发现的所有运行 MITM 的工具都只是监视数据包,但我没有找到任何可以真正重放或更改它们的工具。 我发现了
我是 FreeGLUT 的当前维护者之一sourceforge 上的项目。此代码存储在 SVN 存储库中,但为了激发其他人的贡献,我想提供一个 git 存储库。我已经在 github 上有一个 svn
我正在开发一个有很多命令行交互的系统。有时甚至通过 SSH。命令有时可能需要长达 30 分钟才能完成。 目前,我正在停止对执行该系统调用的对象的大部分 system 调用。例如: class Back
我们如何在delve session 中轻松查看decimal.Decimal值的浮点值。尤其是在 mozilla rr 录制的 dlv replay session 中。 (dlv) args un
我是一名优秀的程序员,十分优秀!