位置: 编程技术 - 正文

Python的Flask框架及Nginx实现静态文件访问限制功能(flask框架官方文档)

编辑:rootadmin

推荐整理分享Python的Flask框架及Nginx实现静态文件访问限制功能(flask框架官方文档),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:flask框架图,python flask框架 web服务器,python flask框架 web服务器,flask框架官方文档,python flask框架 web服务器,flask框架官方文档,flask 框架,Python的flask框架教程,内容如对您有帮助,希望把文章链接给更多的朋友!

Nginx配置

Ngnix,一个高性能的web服务器,毫无疑问它是当下的宠儿。卓越的性能,灵活可扩展,在服务器领域里攻城拔寨,征战天下。

静态文件对于大多数website是不可或缺的一部分。使用Nginx来处理静态文件也是常见的方式。然而,一些静态文件,我们并不像任何情况下都公开给任何用户。例如一些提供给用户下载的文件,一些用户上传的涉及用户隐私的图片等。我们我希望用户登录的情况下可以访问,未登录的用户则不可见。

粗略的处理,在后端程序可以做过滤,渲染页面的时候,在视图逻辑里面验证用户登录,然后返回对应的页面。例如下面的flask代码(伪代码)

可是这样的处理,还有一个问题,静态文件是交给 nginx 处理的,如果hacker找到了文件的绝对地址,直接访问 Nginx 的一个小功能----XSendfile。 其原理也比较简单,大概就是使用了请求重定向。

我们知道,如果用Nginx做服务器前端的反向代理,一个请求进来,nginx先补捉到,然后再根据规则转发给后端的程序处理,或者直接处理返回。前者处理一些动态逻辑,后者多是处理静态文件。因此上面那个例子中,直接访问静态文件的绝对地址,Nginx就直接返回了,并没有调用后端的 user_idcard_page做逻辑限制。

为了解决这个问题,nginx提供的 XSendfile功能,简而言之就是用 internal 指令。该指令表示只接受内部的请求,即后端转发过来的请求。后端的视图逻辑中,需要明确的写入X-Accel-Redirect这个headers信息。

伪代码如下:

Python的Flask框架及Nginx实现静态文件访问限制功能(flask框架官方文档)

经过这样的处理,就能将静态资源进行重定向。这样的用法还是比较常见的,很多下载服务器可以通过这样的手段针对用户的权限做下载处理。

Flask

Flask是我喜欢的web框架,Flask甚至实现了一个 sendfile的方法,比上面的做法还简单。我用vagrant作了一个虚拟机,用Flask实现了上面的需求,具体代码如下:

项目结构

nginx的配置 nginx conf

web.conf

Flask 代码

app.py

简单部署

Python的string模块中的Template类字符串模板用法 string.Template()string.Template()内添加替换的字符,使用"$"符号,或在字符串内,使用"${}";调用时使用string.substitute(dict)函数.可以通过继承"string.Template",覆盖变量d

Python中的字符串替换操作示例 字符串的替换(interpolation),可以使用string.Template,也可以使用标准字符串的拼接.string.Template标示替换的字符,使用"$"符号,或在字符串内,使用"${}";调用时使

Python实现带百分比的进度条 大家在安装程序或下载文件时,通常都能看到进度条,提示你当前任务的进度。其实,在python中实现这个功能很简单,下面是具体代码。在实际应用中

标签: flask框架官方文档

本文链接地址:https://www.jiuchutong.com/biancheng/387650.html 转载请保留说明!

上一篇:总结网络IO模型与select模型的Python实例讲解(总结网络io模型的特点)

下一篇:Python的string模块中的Template类字符串模板用法(python string包)

  • 自己的医院
  • 什么是价内税不是重复了吗
  • 房租租赁房产税由哪方缴纳
  • 广交会展务
  • 调整上年度损益
  • 发票上的不含税单价怎么算的
  • 建筑业预交增值税按什么算
  • 邯郸银行公对公转账时间
  • 有什么法规依据法律规定
  • 营改增后小规模纳税人涉税账务处理
  • 应收账款项目分析思维导图
  • 存货损失
  • 举例说明税收支出的形式
  • 房地产土地增值税计税依据
  • 转让不动产增值税预缴
  • 小规模公司核定增收税可以公账直接打给法人吗?
  • 佣金是否要交所得税
  • 发票开出来对方不走账会怎么样?
  • 购入固定资产挂帐记其他应付款还是应付账款
  • 劳动争议的解决途径不可以直接选择的是
  • 公司股权转移怎么办理
  • 年终奖个税筹划临界点
  • 960011094开票提示
  • 开票的时候如何把价格分散开
  • 无形资产管理的基本流程包括无形资产的
  • 客户到款打到子公司账上如何转回
  • 制造费用明细科目大全
  • 分包给总包开什么发票
  • 无法偿还的应付款项予以转账
  • u盘的内存卡怎么装
  • 广告费递延几年
  • 报销培训费怎么做账
  • 预付账款主要是
  • 品牌使用费分录
  • 如何重装系统win7旗舰版
  • 房地产企业收入确认
  • php模板引擎原理
  • 广告代理费制度
  • 公司年终奖怎么入账
  • 纳什理论是什么
  • 固定资产的入账标准
  • 在ubuntu中安装win10
  • 入库单如何做账分录
  • 施工企业的汇兑损失属于财务费用
  • 费用报销票跨月可以用吗
  • 纳税申报人的对象是哪些
  • 发放职工薪酬计入什么科目
  • 产品广告费属于什么会计科目类别
  • 差旅费中火车票的进项税怎么计算
  • 未分配利润转增股本
  • 公司举办活动的好处
  • 应付账款的账务怎么处理
  • 新建厂房房产证办理流程
  • 事业单位开的发票
  • sql触发器语句
  • 自定义设置微信来电铃声
  • vista桌面为什么不能登陆
  • 注册表c盘桌面路径改为d盘
  • 微软发布新系统
  • centos新加硬盘
  • win10激活突然失效
  • JavaScript_ECMA5数组新特性详解
  • JSONLINT:python的json数据验证库实例解析
  • js代码运行机制
  • shell字符串比较相等
  • js模拟touch
  • javascript总结笔记
  • 使用jquery
  • JavaScript SweetAlert插件实现超酷消息警告框
  • HttpURLConnection的流式输出的缺陷和解决方法
  • 深入python3
  • UnityException: Launching iOS project via Xcode4 failed
  • 求行驶时间的公式
  • 如何将python中的列表与数据对齐
  • 退车辆购置税流程怎么操作
  • 税务局组织收入存在的问题
  • 什么是解放思想?请阐述解放思想和实事求是之间的关系
  • 中国税务标识标准字体
  • 成都租房备案凭证怎么办理
  • 工商注册app是不是在手机上可以完全操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设