以编程方式篡改http请求
本文关键字:http 请求 方式篡 编程 | 更新日期: 2023-09-27 18:07:10
我需要登录到一个网站,我可以通过一个url,如url.com/ssorequest?parameters=123做到这一点。如果在地址中输入这个,我将登录并被重定向到门户。
现在我应该通过一个http post请求编程地做到这一点,但我不能让它工作,我得到重定向到一个登录表单而不是门户,即我没有得到登录。
我用Fiddler来找出两种方法之间的区别。我发现一些幕后的get请求是不同的。浏览器的get-request会将cookie数据发送给服务器,而fiddler的post-request不会。
当我使用fiddler来重复浏览器的第一次调用时,它也不发送cookie数据。所以它只有在我通过浏览器窗口时才能工作。除非我在fiddler中使用断点并篡改请求以包含cookie数据。
问:为什么它的行为不同于浏览器与http post和当请求从Fiddler完成?
问:有没有办法篡改请求出去编程在我的c#应用程序不写我自己的提琴手应用程序?
您很可能遇到过防伪造cookie。它的工作方式是确保您使用第一次请求并加载在浏览器中的页面登录,并且cookie仅对一个请求有效,因此如果您再次运行相同的请求,fiddler将无法登录。
使用c#,您首先必须请求登录页面,并在cookie容器中获取该页面提供的cookie。下次,当您将页面与数据一起发布时,您必须确保cookie与请求一起附加。
编辑:步骤1:浏览网站上的任何页面。这将启动会话。它还会给你会话cookie。
Step2:请求登录页面。将第一步获得的cookie连同登录页面一起发送,以便它可以识别会话。这一步至关重要。在这个阶段,根据站点正在使用的安全系统,可能有两种情况。要么它将发送一个安全cookie和会话cookie,要么它将在表单中添加一个隐藏变量和一个作为安全令牌的值。确保你得到了这个令牌/cookie。
步骤2:将登录信息与步骤1中获得的cookie/令牌一起发布到登录页面(或表单操作指向的任何页面)。如果是令牌,则将其与登录信息一起包含在帖子数据中;如果是cookie,则将其添加到请求中。