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

資訊專欄INFORMATION COLUMN

Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第七節(jié):安全Cookie機(jī)制

dmlllll / 3473人閱讀

摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第六節(jié)異步與協(xié)程化下一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第八節(jié)用戶身份認(rèn)證是很多網(wǎng)站為了辨別用戶的身份而存儲(chǔ)在用戶本地終端的數(shù)據(jù),在中使用可以方便地對(duì)進(jìn)行讀寫。

上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第六節(jié):異步與協(xié)程化
下一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第八節(jié):用戶身份認(rèn)證

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

實(shí)例:Cookie的簡(jiǎn)單讀寫
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("設(shè)置新的session")
        else:
            self.write("已經(jīng)具有session")

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

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

在實(shí)際應(yīng)用中,Cookie經(jīng)常像本例這樣用于保存session信息。
因?yàn)镃ookie總是被保存在客戶端,所以如何保存其不被篡改是服務(wù)器端程序必須解決的問(wèn)題。
Tornado為Cookie提供了信息加密機(jī)制,使得客戶端無(wú)法隨意解析和修改Cookie的鍵值。
實(shí)例:安全的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("設(shè)置新的session")
        else:
            self.write("已經(jīng)具有session")

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

對(duì)比上面的簡(jiǎn)單Cookie實(shí)例可以發(fā)現(xiàn)不同之處:

在tornado.web.Application對(duì)象初始化時(shí)賦予cookie_secret參數(shù),該參數(shù)值時(shí)一個(gè)字符串,用于保存本網(wǎng)站Cookie加密時(shí)的密鑰。

在需要讀取cookie的地方使用RequestHandler.get_secure_cookie代替原來(lái)的RequestHandler.get_cookie調(diào)用。

在需要寫入Cookie的地方用RequestHandler.set_secure_cookie替換原來(lái)的RequestHandler.set_cookie調(diào)用,

這樣,就不需要擔(dān)心Cookie偽造的問(wèn)題了,但是cookie_secret參數(shù)值作為加密密鑰,需要好好保護(hù),不能泄露。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/42617.html

相關(guān)文章

  • PythonTornado 二章實(shí)戰(zhàn)演練開發(fā)Tornado網(wǎng)站:第六節(jié):異步與協(xié)程化

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第五節(jié)輸出相應(yīng)函數(shù)下一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第七節(jié)安全機(jī)制有兩種方式可改變同步的處理流程異步化針對(duì)的處理函數(shù)使用修飾器,將默認(rèn)的同步機(jī)制改為異步機(jī)制。使用異步對(duì)象處理耗時(shí)操作,比如本例的。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第五節(jié):RequestHandler:輸出相應(yīng)函數(shù)下一篇文章:Python:...

    cod7ce 評(píng)論0 收藏0
  • PythonTornado 二章實(shí)戰(zhàn)演練開發(fā)Tornado網(wǎng)站:第八節(jié):用戶身份認(rèn)證

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第七節(jié)安全機(jī)制下一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第九節(jié)防止跨站攻擊在的類中有一個(gè)屬性用于保存當(dāng)前請(qǐng)求的用戶名。實(shí)例使用屬性及方法來(lái)實(shí)現(xiàn)用戶身份控制。該地址被用于裝飾器在發(fā)現(xiàn)用戶尚未驗(yàn)證時(shí)重定向到一個(gè)。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第七節(jié):安全Cookie機(jī)制下一篇文章:Python:Tornado 第...

    Kahn 評(píng)論0 收藏0
  • PythonTornado 二章實(shí)戰(zhàn)演練開發(fā)Tornado網(wǎng)站:第九節(jié):防止跨站攻擊

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第八節(jié)用戶身份認(rèn)證下一篇文章第三章概念及應(yīng)用第一節(jié)概念跨站請(qǐng)求偽造,或是一種對(duì)網(wǎng)站的惡意利用。其中是存在漏洞的網(wǎng)站,而是存在攻擊行為的惡意網(wǎng)站。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第八節(jié):用戶身份認(rèn)證下一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應(yīng)用:第一節(jié):Web...

    Zoom 評(píng)論0 收藏0
  • PythonTornado 二章實(shí)戰(zhàn)演練開發(fā)Tornado網(wǎng)站:第五節(jié):RequestHan

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第四節(jié)輸入捕捉下一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第六節(jié)異步與協(xié)程化輸出響應(yīng)函數(shù)是指一組為客戶端生成處理結(jié)果的工具函數(shù),開發(fā)者調(diào)用它們以控制的處理結(jié)果。清空所有在本次請(qǐng)求中之前寫入的和內(nèi)容。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第四節(jié):RequestHandler:輸入捕捉下一篇文章:Python:Tornad...

    nanfeiyan 評(píng)論0 收藏0
  • PythonTornado 二章實(shí)戰(zhàn)演練開發(fā)Tornado網(wǎng)站:第四節(jié):RequestHan

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第三節(jié)接入點(diǎn)函數(shù)下一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第五節(jié)輸出相應(yīng)函數(shù)輸入捕捉是指在中用于獲取客戶端輸入的工具函數(shù)和屬性。是獲取單個(gè)值而在參數(shù)存在多個(gè)值得情況下使用,返回多個(gè)值的列表。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第三節(jié):RequestHandler:接入點(diǎn)函數(shù)下一篇文章:Python:Tornado ...

    blankyao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<