位置: 编程技术 - 正文

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

  • 不征收增值税的有哪些
  • 利润分配未分配利润借贷方表示什么
  • 企业社会保险登记表
  • 什么时候用以前年度损益调整什么时候用年初未分配利润
  • 劳务费免税发票的政策规定
  • 发票代码和发票号码是什么
  • 单位投资非盈利性组织怎样核算
  • 普通发票可以改明细吗
  • 员工在社保局报备流程
  • 溢价收购怎么做账
  • 什么叫单项计提坏账损失
  • 其他公司代缴社保分录
  • 老板在外地怎么辞职
  • 仓库间的调拨流程
  • 不用开票的收入有哪些
  • 计提应收票据利息怎么算
  • 我公司以房产土地为主
  • 基准收益率是
  • 进项税大于销项税会计分录月末
  • 上年度的发票还能红冲吗
  • 拍卖公司财务
  • ffmpeg安装教程linux
  • 分享php入门的学校有哪些
  • 营改增后增值税税率
  • 代办税务需要什么资质
  • 进程lsass.exe
  • mouse.exe在哪个文件夹
  • 羊肚菌的功效和价格
  • 在php中,什么函数能将数组转化为字符串
  • element动态变化表格列
  • 接受捐赠和对外捐赠分录
  • php数组操作函数
  • 前端框架学哪个好
  • thinkphpcount查询
  • 总公司下的分公司如何做账
  • 广告代理费收取比例
  • h5移动端网页设计
  • 真题解析买谁的
  • node.js解决跨域请求
  • 项目折现率计算公式
  • 百旺 税控盘
  • 股权变更后税务登记
  • 所得税汇算清缴怎么操作
  • 无形资产摊销是按原值吗
  • 结账的内容和程序是什么
  • 月末结转增值税怎么算
  • 产业扶持资金管理办法
  • 企业逾期贷款利息影响征信吗
  • 公司给员工转公司
  • 一般纳税人只交社保无发票往来需要做账吗
  • 存货报废如何做账
  • 提供劳务结转的成本计入什么科目
  • 网上购物退货后钱多久到
  • 总公司可以给子公司开票吗
  • ca证书费用计入什么科目
  • 执行企业会计准则的非上市企业
  • 营业执照可以注册几个抖音号
  • 数据库保护数据方式
  • mysql5.7.26启动失败
  • centos如何挂载fc存储
  • win10打开或关闭功能在哪里
  • linux pwdx命令
  • 电脑开机绿
  • win10 rs1是什么版本
  • windows8装 .NET 3.5 时出现0x800F0907错误解决方法
  • windows7软件卸载
  • win10无法回退到以前的版本怎么办
  • Win10系统无法运行程序
  • js获取url的html
  • js 对象声明
  • 彻底弄懂js中的this指向
  • js行号显示的文字不一样
  • jquery iframe
  • 航天金税盘客服电话苏州
  • 绿化项目利润
  • 机动车检测属于哪个税收
  • 电信追缴欠费的工作方案有哪些
  • 请问到税务局办里退税都需要什么手续
  • 乐陵到德州多远距离
  • 美丽重生李晓晓免费阅读
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设