>  기사  >  백엔드 개발  >  Python에서 Tornado의 보안 쿠키 메커니즘에 대한 설명

Python에서 Tornado의 보안 쿠키 메커니즘에 대한 설명

不言
不言앞으로
2018-10-19 17:27:372364검색

이 기사는 Python의 Tornado 보안 쿠키 메커니즘에 대한 설명을 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 될 수 있습니다.

쿠키는 사용자의 신원을 식별하기 위해 많은 웹사이트에서 사용자의 로컬 터미널(클라이언트 측)에 저장하는 데이터입니다. Tornado에서 RequestHandler.get_cookie() 및 RequestHandler.set_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() 함수를 사용하여 쿠키 이름 [세션]이 존재하는지 확인합니다. 존재하지 않으면 새 session_id가 할당됩니다. .

실제 응용에서는 Cookie 이 예와 같이 세션 정보를 저장하는 데 자주 사용됩니다.
쿠키는 항상 클라이언트 측에 저장되기 때문에 이를 어떻게 변조되지 않게 저장하는지는 서버 측 프로그램이 해결해야 할 문제입니다.
Tornado는 클라이언트가 쿠키 키 값을 마음대로 구문 분석하고 수정할 수 없도록 쿠키에 대한 정보 암호화 메커니즘을 제공합니다.

예: 보안 쿠키

코드:

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_secret 매개변수는 tornado.web.Application 개체가 초기화될 때 제공되며 매개변수 값은 이 웹사이트에서 쿠키를 암호화할 때 키를 저장하는 데 사용되는 문자열입니다.

  • 쿠키를 읽어야 하는 원래 RequestHandler.get_cookie 호출 대신 RequestHandler.get_secure_cookie를 사용하세요.

  • 쿠키를 작성해야 하는 원래 RequestHandler.set_cookie 호출을 RequestHandler.set_secure_cookie로 바꾸세요.

이렇게 하면 쿠키 위조에 대해 걱정할 필요가 없지만 cookie_secret 매개변수 값은 다음과 같아야 합니다. 암호화 키로 사용되며, 유출되지 않습니다.

위 내용은 Python에서 Tornado의 보안 쿠키 메커니즘에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제