位置: 编程技术 - 正文

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

  • 医疗批发企业增值税税负率大概是多少
  • 销售材料的会计分录在实务第几章节
  • 增值税专票开户行
  • 废机油处理多少钱一吨
  • 现金流量表抵消分录
  • 应付账款现金流量表指定
  • 销项税普票
  • 自己提供原材料让别人加工
  • 未加盖发票专用章的发票是不合规
  • 业务招待费列支内容
  • 出售拆迁补偿住房违法吗
  • 以提供劳务为主营业务的企业
  • 金融企业发放贷款时发生的交易费用
  • 收到一达通退税款怎么做账
  • 去税务局领用发票要多久
  • 政府部门纳税人识别号查询
  • 企业发放给员工子女抚养费
  • 3万免税是指什么
  • 合并起来
  • 坏账处理的所得税税率
  • 商品税目是什么意思4001
  • 关联方债权投资与权益投资比例
  • 发票红冲和作废一样吗
  • 出售固定资产属于收入
  • 去年多确认收入今年怎么调整
  • 怎么激活win10密钥
  • 怎么用苹果6splus
  • 建筑企业自持商是指
  • 打开win10 defender
  • 差旅费报销需要提交的单据有
  • 上月多计提的税金及附加怎么办
  • 销售返利如何做账
  • lcasensor是什么进程
  • wordpress如何使用
  • 应纳所得税额税率表
  • 水青冈是常绿还是落叶
  • 小企业会计准则财务报表至少包括
  • 农产品抵扣进项税额的规定
  • 其他货币资金明细科目有哪些
  • 基于php判断客户是否存在
  • 宝塔怎么做?
  • 单位应缴住房公积金
  • 商贸企业出口退税吗
  • 电费发票查不到
  • 公司支付的广告费是什么
  • 工会的钱怎么取出来
  • 银行对账单冲正的单据在财务软件哪里找
  • python方差齐性检验
  • 自查补税行为有哪些方面
  • 佣金的会计如何计算
  • 开票只开大类
  • 银行存款产生的利息收入
  • 个别计价法下,把每一种存货的实际成本
  • 小规模纳税人能开6%增值税专用发票吗
  • 城市基础设施配套费征收管理规定
  • 经营租赁方式租入再转租的建筑物
  • 调整以前年度利息支出
  • 企业所得税汇算清缴时间
  • 房屋租赁的注意问题
  • 收到劳务公司代发工资怎么做账
  • 购买超市购物卡有优惠吗
  • printnow.exe - printnow是什么进程 有什么作用
  • linux免安装软件
  • jquery简单例子
  • django rest framework和django区别
  • js区分浏览器页面大小
  • Jqprint实现页面打印
  • node.js+mysql
  • 深入python3
  • 置顶聊天折叠怎么开启
  • Unity3d中GridLayoutGroup自适应高度
  • Ext JS 4官方文档之三 -- 类体系概述与实践
  • 全面解析日本失去的十年
  • unityui动画
  • jquery的children方法
  • js复制对象的方法有哪几种
  • 城市配套费需要什么资料
  • 水库占地怎么缴耕地占用税
  • 潍坊特殊工种退休公示名单九月
  • 亦庄税务局电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设