国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python:Tornado 第二章:實戰演練:開發Tornado網站:第七節:安全Cookie機制

dmlllll / 3467人閱讀

摘要:上一篇文章第二章實戰演練開發網站第六節異步與協程化下一篇文章第二章實戰演練開發網站第八節用戶身份認證是很多網站為了辨別用戶的身份而存儲在用戶本地終端的數據,在中使用可以方便地對進行讀寫。

上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第六節:異步與協程化
下一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第八節:用戶身份認證

Cookie是很多網站為了辨別用戶的身份而存儲在用戶本地終端(Client Side)d的數據,在Tornado中使用RequestHandler.get_cookie()、RequestHandler.set_cookie()可以方便地對Cookie進行讀寫。

實例:Cookie的簡單讀寫
import tornado.web

session_id = 1
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        global session_id
        if not self.get_cookie("session"):
            self.set_cookie("session",str(session_id))
            session_id+=1
            self.write("設置新的session")
        else:
            self.write("已經具有session")

if __name__ == "__main__":
    app=tornado.web.Application([
        ("/",MainHandler)
    ])
    app.listen("8888")
    tornado.ioloop.IOLoop.current().start()

本例中用get_cookie()函數判斷Cookie名【session】是否存在,如果不存在則為其賦予新的session_id.

在實際應用中,Cookie經常像本例這樣用于保存session信息。
因為Cookie總是被保存在客戶端,所以如何保存其不被篡改是服務器端程序必須解決的問題。
Tornado為Cookie提供了信息加密機制,使得客戶端無法隨意解析和修改Cookie的鍵值。
實例:安全的Cookie

代碼:

import tornado.web

session_id = 1
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        global session_id
        #get_secure_cookie代替get_cookie
        if not self.get_secure_cookie("session"):
            #set_secure_cookie代替set_cookie
            self.set_secure_cookie("session",str(session_id))
            session_id+=1
            self.write("設置新的session")
        else:
            self.write("已經具有session")

if __name__ == "__main__":
    app=tornado.web.Application([
        ("/",MainHandler)
    ],cookie_secret="JIA_MI_MI_YAO")
    app.listen("8888")
    tornado.ioloop.IOLoop.current().start()

對比上面的簡單Cookie實例可以發現不同之處:

在tornado.web.Application對象初始化時賦予cookie_secret參數,該參數值時一個字符串,用于保存本網站Cookie加密時的密鑰。

在需要讀取cookie的地方使用RequestHandler.get_secure_cookie代替原來的RequestHandler.get_cookie調用。

在需要寫入Cookie的地方用RequestHandler.set_secure_cookie替換原來的RequestHandler.set_cookie調用,

這樣,就不需要擔心Cookie偽造的問題了,但是cookie_secret參數值作為加密密鑰,需要好好保護,不能泄露。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42617.html

相關文章

  • PythonTornado 二章實戰演練開發Tornado網站:第六節:異步與協程化

    摘要:上一篇文章第二章實戰演練開發網站第五節輸出相應函數下一篇文章第二章實戰演練開發網站第七節安全機制有兩種方式可改變同步的處理流程異步化針對的處理函數使用修飾器,將默認的同步機制改為異步機制。使用異步對象處理耗時操作,比如本例的。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第五節:RequestHandler:輸出相應函數下一篇文章:Python:...

    cod7ce 評論0 收藏0
  • PythonTornado 二章實戰演練開發Tornado網站:第八節:用戶身份認證

    摘要:上一篇文章第二章實戰演練開發網站第七節安全機制下一篇文章第二章實戰演練開發網站第九節防止跨站攻擊在的類中有一個屬性用于保存當前請求的用戶名。實例使用屬性及方法來實現用戶身份控制。該地址被用于裝飾器在發現用戶尚未驗證時重定向到一個。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第七節:安全Cookie機制下一篇文章:Python:Tornado 第...

    Kahn 評論0 收藏0
  • PythonTornado 二章實戰演練開發Tornado網站:第九節:防止跨站攻擊

    摘要:上一篇文章第二章實戰演練開發網站第八節用戶身份認證下一篇文章第三章概念及應用第一節概念跨站請求偽造,或是一種對網站的惡意利用。其中是存在漏洞的網站,而是存在攻擊行為的惡意網站。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第八節:用戶身份認證下一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應用:第一節:Web...

    Zoom 評論0 收藏0
  • PythonTornado 二章實戰演練開發Tornado網站:第五節:RequestHan

    摘要:上一篇文章第二章實戰演練開發網站第四節輸入捕捉下一篇文章第二章實戰演練開發網站第六節異步與協程化輸出響應函數是指一組為客戶端生成處理結果的工具函數,開發者調用它們以控制的處理結果。清空所有在本次請求中之前寫入的和內容。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第四節:RequestHandler:輸入捕捉下一篇文章:Python:Tornad...

    nanfeiyan 評論0 收藏0
  • PythonTornado 二章實戰演練開發Tornado網站:第四節:RequestHan

    摘要:上一篇文章第二章實戰演練開發網站第三節接入點函數下一篇文章第二章實戰演練開發網站第五節輸出相應函數輸入捕捉是指在中用于獲取客戶端輸入的工具函數和屬性。是獲取單個值而在參數存在多個值得情況下使用,返回多個值的列表。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第三節:RequestHandler:接入點函數下一篇文章:Python:Tornado ...

    blankyao 評論0 收藏0

發表評論

0條評論

dmlllll

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<