问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

懂python tornado的解答一下

发布网友 发布时间:2022-04-18 04:56

我来回答

3个回答

懂视网 时间:2022-04-18 09:17

本篇文章给大家带来的内容是关于Python中Tornado防止跨站攻击的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

跨站请求伪造(Cross-site request forgery,CSRF 或XSRF)是一种对网站的恶意利用。通过CSRF,攻击者可以冒用用户的身份,在用户不知情的情况下执行恶意操作。

1、CSRF攻击原理

下图展示了CSRF的基本原理。其中Site1是存在CSRF漏洞的网站,而SIte2是存在攻击行为的恶意网站。

1306455092-5bbbfe2269a36_articlex.jpg
上图内容解析如下:

  • 用户首先访问了存在CSRF漏洞网站Site1,成功登陆并获取了Cookie,此后,所有该用户对Site1的访问均会携带Site1的Cookie,因此被Site1认为是有效操作。

  • 此时用户又访问了带有攻击行为的站点Site2,而Site2的返回页面中带有一个访问Site1进行恶意操作的连接,但却伪装成了合法内容,比如下面的超链接看上去是一个抽奖信息,实际上却是想Site1站点提交提款请求

  • <a href='http://www.site1.com/get_money?amount=500&dest_card=34XXXXX">
    三百万元抽奖,免费拿
    </a>
  • 用户一旦点击恶意链接,就在不知情的情况下向Site1站点发送了请求。因为之前用户在Site1进行过登陆且尚未退出,所以Site1在收到用户的请求和附带的Cookie时将被认为该请求是用户发送的正常请求。此时,恶意站点的目的也已经达到。

  • 2、用Tornado防范CSRF攻击

    为了防范CSRF攻击,要求每个请求包括一个参数值作为令牌的匹配存储在Cookie中的对应值。

    Tornado应用可以通过一个Cookie头和一个隐藏的HTML表单元素向页面提供令牌。这样,当一个合法页面的表单被提交时,它将包括表单值和已存储的Cookie。如果两者匹配,则Tornado应用认可请求有效。

    开启Tornado的CSRF防范功能需要两个步骤。

    【1】在实例化tornado.web.Application时传入xsrf_cookies=True参数,即:

    application=tornado.web.Application([
    (r'/',MainHandler),
    ],
    cookie_secret='DONT_LEAK_SECRET',
    xsrf_cookies=True,
    )

    或者:

    settings={
    "cookie_secret":"DONT_LEAK_SECRET",
    "xsrf_cookies":True
    }
    
    application=tornado.web.Application([
    (r'/',MainHandler),
    ],**settings)

    当tornado.web.Application需要初始化的参数过多时,可以像本例一样通过setting字典的形式传入命名参数

    【2】在每个具有HTML表达的模板文件中,为所有表单添加xsrf_form_html()函数标签,比如:

    <form action="/login" method="post">
    {% module xsrf_form_html() %}
    <input type="text" name="message"/>
    <input type="submit" value="Post"/>
    </form>

    这里的{% module xsrf_form_html() %}起到了为表单添加隐藏元素以防止跨站请求的作用。

    Tornado的安全Cookie支持和XSRF防范框架减轻了应用开发者的很多负担,没有他们,开发者需要思考很多防范的细节措施,因此Tornado内建的安全功能也非常有用。

    热心网友 时间:2022-04-18 06:25

    def pagecache(key="", time=PAGE_CACHE_TIME, key_suffix_calc_func=None):
        def _decorate(method):
            def _wrapper(*args, **kwargs):
                if not MC_Available:
                    method(*args, **kwargs)
                    return
                
                req = args[0]
                
                key_with_suffix = key
                if key_suffix_calc_func:
                    key_suffix = key_suffix_calc_func(*args, **kwargs)
                    if key_suffix:
                        key_with_suffix = '%s:%s' % (key, quoted_string(key_suffix)) 
                
                if key_with_suffix:
                    key_with_suffix = str(key_with_suffix)
                else:
                    key_with_suffix = req.request.path
                    
                mc = pylibmc.Client()
                html = mc.get(key_with_suffix)
                request_time = int(req.request.request_time()*1000)
                if html:
                    req.write(html)
                    #req.write(RQT_RE.sub('<span id="requesttime">%d</span>'%request_time, html))
                else:
                    result = method(*args, **kwargs)
                    mc.set(key_with_suffix, result, time)
            return _wrapper
        return _decorate

    是Python Decorator 函数,与tornado关系不大,学学Python Decorator就能理解。

    热心网友 时间:2022-04-18 07:43

    百度、google python修饰函数;对需要修饰的函数的预处理
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    谁告诉我一下,韩语中,“遵命”怎么说 想开个甜品店,不知道哪里可以学习呢 如何取消微信新号绑定的手机号? 翼支付-翼建钟情活动内容是什么? 怎么参加翼支付“翼建钟情”活动? 翼支付--翼建钟情立减10元-建行这次活动有具体名额限制吗? 西凤酒是哪里的 货车总重量不超过二十吨就不算超载吗? 自卸货车上装有二十多吨货已经有四五天了对货车能伤害哪个部位? 如何回复别人的"忙里偷闲"? 肉皮炖鲤鱼的做法,白菜肉皮炖鲤鱼怎么做好 怎样自制灯罩 没有物流单号,不知卖方发的那家物流怎样查询物流信息 网络连接问题,TPLINK提示可以上网,宽带ADSL拨号上网无发进行 宽带拨号上网,用tp-link路由器后,ip带宽控制里的ip地址段应该如何填写? 带有亮个数字又有一个山字的成语 请问一下TP-LINK路由器设置里的wan口连接时宽带拨号连接,每次上之前是都要输账号密码? 中国山有三山五岳,水有什么 tplink路由可以拨号上网吗 最有效的曝光平台拼多多平台购买到虚假宣传的产品,商家承诺假一赔十,现在在证据确凿的情况下,平台不处_百度问一问 在拼多多售卖阿道夫洗发水被罚假一罚十怎么办?里面有5万货款被冻结了。有遇到一样问题吗。求回复 拼多多买家申请假一赔十,商品已经寄回拼多多平台检测,平台会怎么叛? 梦见办喜事一直哭 梦到男友和别人结婚了我一直哭醒 最近老是做梦梦见和别人结婚了,不是和男朋友结婚,梦里还哭着一直找我男朋友,这是怎么回事? 梦见和男朋友的好朋友结婚了男朋友在婚礼快开始的时候哭了 我梦见自己的男朋友娶了别人、我一直哭、一直哭、这预示著什麽事呢、 梦见自己跟男朋友结婚,怕失去他我哭了 These Things Take Time 歌词 我做梦,梦见我和我男朋友结婚,可是结婚当天我哭的撕心裂肺的抱着我妈说我要离婚,结婚当天我都没请朋友 棒棒糖的英语怎么说 2020年已过去四分之三,三星为啥不出中低端新机? 为什么很少有人用三星的低端机型 三星手机是否不做低端市场呢? 三星手机为什么在中国没有市场了 三星手机是不是完蛋了 三星为什么失去了中国市场 三星s3是不是一款已经落伍的比较废的低端机? 三星手机是如何分类的??详细分为那些系列?? 三星手机目前出于什么水平的地位 高考成绩不好,要不要复读? 高考后成绩不理想,到底要不要复读?复读有效果吗? 苏大的在职mba怎么报名 高考成绩不理想,是否应该考虑复读?如果复读需要注意哪些问题? 中国人民大学MBA在职硕士专业怎么报考 高考成绩并不理想,该选择复读还是去读大专? 如果高考成绩不理想,是复读还是专升本? 高考成绩不理想,复读不复读? 用dos定时关机的命令是什么??? DOS中如何设置在固定时间自动关机