位置: 编程技术 - 正文

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包)

  • 外轮供应公司远洋运输供应公司的退税申报?
  • 增值税纳税义务早于会计准则的案例
  • 全额抵扣的发票怎么申报增值税
  • 新成立的销售公司有哪些
  • 受托代销商品款是什么科目
  • 如何证明自己是低保户
  • 应纳税所得额超过36000至144000
  • 适用会计制度备注怎么填?
  • 子公司的实收资本合并报表怎么做
  • 怎么样办理银行卡?
  • 购买的二手车可以抵扣进项税额吗
  • 登记多栏式日记总账的依据是
  • 公司业务往来
  • 计入在建的工资会计科目
  • 地税保险单位编号是什么
  • 房屋租赁补充协议怎么写才有效
  • 进项发票可以抵扣吗
  • 公司为员工承担的个税可以税前扣除吗
  • 非公司车辆的使用费如何入账?
  • 住房公积金业务挂起
  • 第二季度的利润表报错了,怎么重新报
  • 企业所得税增值税完税证明
  • 所得税费用会计编码是什么
  • linux如何安装
  • dsm是什么文件
  • 消防器材怎么做?
  • 税控设备抵减增值税会计处理
  • php curlfile
  • php二分查找算法两种方法
  • 栀子花叶子发黄是什么原因
  • 最薄的索尼微单
  • 低值易耗品费用账务处理
  • 物流辅助服务包括货物运输吗
  • 朝夕教育怎么样
  • 长期借款的处理原则
  • 关联企业之间业务往来如何定价
  • 十年磨一剑的下一句幽默
  • 主营业务收入登记明细账簿范本
  • 企业合并财务报表论文
  • 未缴增值税的贷方
  • 公司购买食品如何入账科目
  • PostgreSQL教程(六):函数和操作符详解(2)
  • 背书的行为
  • 公司对于子公司的股权投资
  • 验资报告费用如何做账
  • 融资租入固定资产的租赁费属于什么费用
  • 关于职工薪酬的确认和计量下列说法中不正确的是
  • 应交税费未交增值税借方表示什么
  • 退回多交的所得税抵欠税怎么做账
  • 营改增对企业有什么弊端
  • 房租退回进项税额转出会计分录
  • 主营业务成本借贷方向增减
  • 营改增后物业公司账务处理
  • 营业外支出如何做账
  • 员工伤残补助会计分录
  • 进项税额允许抵扣分录
  • win8的运行在哪里打开
  • win10分辨率2560*1080
  • ubuntu 20.04 服务器
  • win8.1玩英雄联盟
  • macbook air xcode开发
  • win7电脑音量
  • excel 提示
  • 如何解决xp系统卡顿
  • linux lv vg
  • Win7系统可以装ie10浏览器么
  • win8 开机后无法进入系统
  • dos所有命令的命令格式
  • unity做cg
  • unity 3d
  • ugui scrollview
  • 安卓的系统设置在哪
  • opengl语言
  • json对象如何取值
  • 注释标签的内容会显示在浏览器窗口中
  • react jss
  • javascript还有人用吗
  • js如何修改style
  • 关于怀孕在线咨询
  • 山西省税务局政审县级还是市级的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设