2011-09-21 44 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 。有一些我無法閱讀的數據。