首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式篡改http请求

问以编程方式篡改http请求
EN

Stack Overflow用户
提问于 2013-04-03 22:11:13
回答 1查看 698关注 0票数 2

我需要登录一个站点,我可以通过url.com/ssorequest?parameters=123这样的url来完成。如果这是在地址中键入,则im登录并被重定向至门户。

现在我应该通过http post请求编程来做这件事,但我不能让它工作,我被重定向到一个登录表单而不是门户,即我不能登录。

我使用Fiddler找出了这两种方法之间的区别。我发现一些幕后的get-request是不同的。浏览器的get-requests会将cookie数据发送到服务器,而fiddlers -request则不会。

当我使用fiddler重复浏览器的第一次调用时,它也不会发送cookie数据。因此,只有当我通过浏览器窗口执行此操作时,它才有效。除非我在fiddler中使用断点并篡改请求以包含cookie数据。

问:为什么它的行为与浏览器不同,无论是http post还是从Fiddler完成请求?

问:有没有办法在我的C#应用程序中以编程方式篡改发出的请求,而不是编写我自己的Fiddler应用程序?

EN

回答 1

Stack Overflow用户

发布于 2013-04-03 22:17:27

您很可能遇到过anti-forgery cookie。它的工作方式是确保您使用首次请求并加载到浏览器中的页面进行登录,并且cookie仅对一个请求有效,因此,如果您再次运行相同的请求,则小提琴手将无法登录。

使用C#时,您首先必须请求登录页面,并在cookie容器中获取随此页面提供的cookie。下一次,当您将页面与数据一起发布时,必须确保cookie与请求一起附加。

编辑:

Step1:浏览站点上的任何页面。这将启动会话。它还将为您提供会话cookie。

Step2:请求登录页面。将在第一步中获得的cookie与登录页面一起发送,以便它可以识别会话。这一步很关键。在此阶段,根据站点使用的安全系统,可以选择两种方式中的任何一种。确保您获得此令牌/cookie。

Step2:将登录信息与步骤1中获得的cookie/token一起发布到登录页面(或表单操作指向的任何页面)。如果是token,则将其与登录信息一起包含在Post数据中;如果是cookie,则将其添加到请求中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15789752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档