2011-09-21 66 views
1

我使用cfhttp登录到一个站点,然后想要发送第二个请求来访问需要登录的数据。CFHTTP - 通过请求传递Cookie的奇怪结果

第一个HTTP请求,经过精细的登录信息和日志,然后我得到的登录返回的饼干,并通过这些插入到第二请求.. <cfparam type='cookie' ......

第二个请求是给没有登录作为回应。

当我将传入的主会话cookie的值与请求头中该cookie的值进行比较时,该值已更改。即使我手动将实际值直接复制并粘贴到​​值,当我检查请求的标题时,它也是不同的。

_user_session cookie的实际值的一个例子是:

BAh7CSIVdXNlcl9jcmVkZW50aWFscyIBgDNhNTJjZmU4YmZhZTA3NzYzNWY1MGViZmFiNDkyMmQ3MjFkODliZDNlMWFkYTI0MmY2YWYzZmMxMzhkZjE4NjNkZGRkN2VkNjljYTlmYTNjMjE1MjA3MzhmZmU5ZDY1NTYwMmM5MmRhNTkzOGRmZDY5NjE0OTU0Njk4OGI0ZTZlIg9zZXNzaW9uX2lkIiUzYzkxYTc1MGM3NGVkM2U0YTNlMzQyY2Y3MzAzZDY1ZCIYdXNlcl9jcmVkZW50aWFsc19pZGkCYgU6DnJldHVybl90bzA%3D - fd91306fe11f1f1a56a85b2c3f06be6e83f06ec5

但是,当我检查_user_session的cookie的值请求头,它是:

BAh7ByIOcmV0dXJuX3RvIi8vZXh0cmFuZXQvcHJvcGVydGllcy8xMzI2L3Jlc2VydmF0aW9ucy5jc3YiD3Nlc3Npb25faWQiJTNmZTE2ZmIyOWNkNDk3MGRmZmZmYTY3ZDVhYzg1ZDRh - fb154a0e79a477e52dee3da1d5f62c2e456e567b

前4位是相同的,(BAh7),但随后的其余部分是短了很多和..以及..只是不同..

我在这里错过了什么吗?任何人都可以解释可能发生什么?

............................ ................. ...........

感谢家伙..只是想小心张贴实际的代码,因为它包含地址和密码之类的东西,但基本上这就是我所知道的..我走的是饼干值直出在浏览器和粘贴在一个标准的登录响应..只是缩小东西下来..

<cfhttp method="Post" url="https://www.abcdefg.com/extranet" useragent="#CGI.http_user_agent#" result="data" redirect="no"> 
    <cfhttpparam type="COOKIE" name="user_credentials" value="3a52cfe8bfae077635f50ebfab4922d721d89bd3e1ada242f6af3fc138df1863dddd7ed69ca9fa3c21520738ffe9d655602c92da5938dfd696149546988b4e6e"/> 
    <cfhttpparam type="COOKIE" name="_abcdefg_session" value="BAh7CSIQX2NzcmZfdG9rZW4iMWlkLzVzUndmL1FTdnZhTXJvOTQ2bDh5QnFkbExPbzNNZmk3b3l2T1RYTjg9IhV1c2VyX2NyZWRlbnRpYWxzIgGAM2E1MmNmZThiZmFlMDc3NjM1ZjUwZWJmYWI0OTIyZDcyMWQ4OWJkM2UxYWRhMjQyZjZhZjNmYzEzOGRmMTg2M2RkZGQ3ZWQ2OWNhOWZhM2MyMTUyMDczOGZmZTlkNjU1NjAyYzkyZGE1OTM4ZGZkNjk2MTQ5NTQ2OTg4YjRlNmUiD3Nlc3Npb25faWQiJTkzZmI4N2IyODI2M2EyODZkYjNmNTFlNTdhZGRjNzg0Ihh1c2VyX2NyZWRlbnRpYWxzX2lkaQJiBQ"/>  

实际上,我开始wonde如果它与在另一端处理请求的方式有关......得到各种各样的奇怪回复,没有什么东西可以相加。我已经做了很多这些,但这只是似乎不同..通常我有重定向=“否”..按照上述,但如果我把它拿出来,那么我实际上得到入口页..确认我登录但是当我尝试访问该页面中表示的实际url时(例如.../extranet/reports/report.csv),我得到的页面未找到错误..我可以从页面内链接到它,但随后如果我用cfhttp调用它的反应是它不存在..

对不起,这是没有道理..我仍然试图理解这一切我自己..将重新发布,当我开始看到一些通过森林的树木..

再次感谢你们!

杰森

+0

您能否提供您的CFHTTP请求的代码以及如何从第一个到第二个获取cookie?另外,你确定那些是会话cookie吗? –

+0

在我们提供帮助之前,请提供以下几个问题:1.您如何从响应中读取cookie值? 2.你如何将这些设置回到下一个请求中?编辑你的问题,并添加一些示例代码,显示你如何得到,然后发送值,我们可以尝试从那里缩小你的问题。没有看到你尝试过的东西,我们都只是在黑暗中拍摄。 –

+0

外部系统可能正在检查您没有传回给他们的其他Cookie值吗? –

回答

0

我不熟悉CFHTTP但 这是包含您的Cookie:

cookie 1 { 
    "user_credentials" = 3a52cfe8bfae077635f50ebfab4922d721d89bd3e1ada242f6af3fc138df1863dddd7ed69ca9fa3c21520738ffe9d655602c92da5938dfd696149546988b4e6e 
    "session_id" = %3c91a750c74ed3e4a3e342cf7303d65d 
    [...] 
} 

等从的base64

cookie 2 { 
    "return_to" = //extranet/properties/1326/reservations.csv, 
    "session_id" = %3fe16fb29cd4970dffffa67d5ac85d4a 
} 

尝试解码,以ASCII看你的cookie 。有一些我无法阅读的数据。