亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4168 | 回復(fù): 1
打印 上一主題 下一主題

[clear][done]python 中如何追加自定義的cookie [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-08-25 15:07 |只看該作者 |倒序瀏覽
本帖最后由 bxfqing 于 2014-09-08 21:36 編輯

背景描述:
測試頁面有如下的javascript,
  1. #       <script type="text/javascript">
  2. #        //Check Login
  3. #        function checkLogin(){
  4. #                    if(status && data.info){
  5. #                        ds.setCookie('username', username, 30);
  6. #                        toggleToken(status);
  7. # 。。。。。。
復(fù)制代碼
打開網(wǎng)頁,輸入測試用戶名:
654        25.637813        192.168.66.151        61.164.241.82        HTTP        756        GET /index.php?r=user/CheckUserStatus&username=1111&password=&_=1408949763960 HTTP/1.1
抓包看到的 當(dāng)前cookie
PHPSESSID=ujbf0iqsfmkscqomipdvprs4s3; NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660
輸入測試pwd
1280        201.741714        192.168.66.151        61.164.241.82        HTTP        786        GET /index.php?r=user/CheckUserStatus&username=1111&password=11111&_=1408949940047 HTTP/1.1
js腳本會把當(dāng)前用戶添加到cookie中;
PHPSESSID=ujbf0iqsfmkscqomipdvprs4s3; NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660; username=1111

我用python來模擬這個過程,使用的是LWPcookieJar
  1.         
  2.         cookieFilename = 'demolocalCookies.txt'
  3.         g_cookiejar = cookielib.LWPCookieJar(cookieFilename)     
  4.         opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(g_cookiejar))
  5.         urllib2.install_opener(opener)
復(fù)制代碼
  1.         g_cookiejar.set_cookie(c)
  2.         print "DBG >>> Cookie  === :before urllib2.urlopen\n\t",g_cookiejar
  3.         check_us_req = urllib2.Request(check_userstatus_url,None,check_us_headers)
  4.         check_us_response = urllib2.urlopen(check_us_req)
  5.         check_us_result = check_us_response.read()
  6.         print "DBG >>> Cookie  === :after urllib2.urlopen\n\t",g_cookiejar
復(fù)制代碼
輸出的調(diào)試信息
  1. DBG >>> Cookie  === :before urllib2.urlopen
  2.         <_LWPCookieJar.LWPCookieJar[<Cookie NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660 for passport.feng.com/>, <Cookie PHPSESSID=jt545q6regkj5me21k9rcqkbf5 for passport.feng.com/>, <Cookie username=1111 for passport.feng.com/>]>
  3. DBG >>> Cookie  === :after urllib2.urlopen
  4.         <_LWPCookieJar.LWPCookieJar[<Cookie NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660 for passport.feng.com/>, <Cookie PHPSESSID=jt545q6regkj5me21k9rcqkbf5 for passport.feng.com/>]>
復(fù)制代碼
有些疑問,在urlopen前,cookie都是三行,為什么抓包的時候,http request 中的cookie還是原來的2行了,cookie始終沒有攜帶username發(fā)起請求?
我也試過下面的幾個方法,都不行,目前比較迷茫,到底哪里寫的不對
+CookieJar.add_cookie_header(request)
+CookieJar.set_cookie(cookie)
+Request.add_header(key, val)

論壇徽章:
0
2 [報告]
發(fā)表于 2014-08-27 17:13 |只看該作者
本帖最后由 bxfqing 于 2014-09-08 21:36 編輯

更新,Cookie構(gòu)造方法有問題:
我把/usr/lib/python2.7/cookielib.py的源代碼加了debug信息

  1.     def add_cookie_header(self, request):
  2.         """Add correct Cookie: header to request (urllib2.Request object).

  3.         The Cookie2 header is also added unless policy.hide_cookie2 is true.

  4.         """
  5.         _debug("add_cookie_header")
  6.         self._cookies_lock.acquire()
  7.         try:

  8.             self._policy._now = self._now = int(time.time())

  9.             cookies = self._cookies_for_request(request)
  10.             print '---',cookies

  11.             attrs = self._cookie_attrs(cookies)
  12.             print '+++',attrs
  13.             if attrs:
  14.                 if not request.has_header("Cookie"):
  15.                     request.add_unredirected_header(
  16.                         "Cookie", "; ".join(attrs))
  17.                     print '<<< ',"Cookie","; ".join(attrs)

  18.             # if necessary, advertise that we know RFC 2965
  19.             if (self._policy.rfc2965 and not self._policy.hide_cookie2 and
  20.                 not request.has_header("Cookie2")):
  21.                 for cookie in cookies:
  22.                     if cookie.version != 1:
  23.                         request.add_unredirected_header("Cookie2", '$Version="1"')
  24.                         break

  25.         finally:
  26.             self._cookies_lock.release()

  27.         self.clear_expired_cookies()
  28.         print '>>>',self._cookies_for_request(request)
復(fù)制代碼
可以POST是帶自定義的cookie信息了;

  1. <<< before Request
  2. <_LWPCookieJar.LWPCookieJar[<Cookie NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660 for passport.feng.com/>, <Cookie PHPSESSID=mf2kvv1pbdc945sespksa8q9f7 for passport.feng.com/>, <Cookie username=1111 for passport.feng.com/>]>
  3. +++ None
  4. <<< after Request,before urlopen
  5. <_LWPCookieJar.LWPCookieJar[<Cookie NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660 for passport.feng.com/>, <Cookie PHPSESSID=mf2kvv1pbdc945sespksa8q9f7 for passport.feng.com/>, <Cookie username=1111 for passport.feng.com/>]>
  6. --- [Cookie(version=0, name='username', value='1111', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False), Cookie(version=0, name='NSC_qbttqpsu', value='ffffffffc3a0da7e45525d5f4f58455e445a4a423660', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=1409131162, discard=False, comment=None, comment_url=None, rest={'httponly': None}, rfc2109=False), Cookie(version=0, name='PHPSESSID', value='mf2kvv1pbdc945sespksa8q9f7', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False)]
  7. 1<<<  Cookie username=1111; NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660; PHPSESSID=mf2kvv1pbdc945sespksa8q9f7
  8. >>> [Cookie(version=0, name='username', value='1111', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False), Cookie(version=0, name='NSC_qbttqpsu', value='ffffffffc3a0da7e45525d5f4f58455e445a4a423660', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=1409131162, discard=False, comment=None, comment_url=None, rest={'httponly': None}, rfc2109=False), Cookie(version=0, name='PHPSESSID', value='mf2kvv1pbdc945sespksa8q9f7', port=None, port_specified=False, domain='passport.feng.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False)]
  9. send: 'POST /index.php?r=user/LoginProcess HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 75\r\nAccept-Language: en-US,en;q=0.5\r\nConnection: close\r\nAccept: application/json, text/javascript, */*; q=0.01\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0\r\nHost: passport.feng.com\r\nCookie: username=1111; NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660; PHPSESSID=mf2kvv1pbdc945sespksa8q9f7\r\nX-Requested-With: XMLHttpRequest\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\nusername%3D=1111&password%3D=xxxxxxxx&wekey_token%3D=&check_code%3D='
  10. reply: 'HTTP/1.1 200 OK\r\n'
  11. header: Date: Wed, 27 Aug 2014 09:09:22 GMT
  12. header: Server: nginx/1.2
  13. header: Content-Type: text/html;charset=utf-8
  14. header: Transfer-Encoding: chunked
  15. header: X-Powered-By: PHP/5.5.1
  16. header: Expires: Thu, 19 Nov 1981 08:52:00 GMT
  17. header: Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  18. header: Pragma: no-cache
  19. header: Set-Cookie: NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660;expires=Wed, 27-Aug-2014 09:19:22 GMT;path=/;httponly
  20. header: X-Via: 1.1 lsh57:2 (Cdn Cache Server V2.0)
  21. header: Connection: close
  22. <<< after urlopen
  23. <_LWPCookieJar.LWPCookieJar[<Cookie NSC_qbttqpsu=ffffffffc3a0da7e45525d5f4f58455e445a4a423660 for passport.feng.com/>, <Cookie PHPSESSID=mf2kvv1pbdc945sespksa8q9f7 for passport.feng.com/>, <Cookie username=1111 for passport.feng.com/>]>
  24. {"status":"need_checkcode","info":{"item":"password","info":"\u8d26\u53f7\u4fe1\u606f\u4e0d\u80fd\u4e3a\u7a7a"}}
復(fù)制代碼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP