位置: 编程技术 - 正文

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

  • 职工旅游不计入福利费
  • 租赁办公场所的请示
  • 财务软件按什么排序
  • 全额纳税是什么意思
  • 开承兑汇票的条件 费用
  • 小规模纳税人运输费计入什么科目
  • 公司报销房租还能扣税吗
  • 房地产业营改增
  • 土地租金计入哪个会计科目
  • 对外支付代扣代缴
  • 出口产品报关单上保险费与实际不符可以丿退税吗
  • 签了合同没开票
  • 化妆品的成本利润是多少
  • 关于预计负债应付退货款明细科目
  • 房地产开发预提费用
  • 滞留票的原因是什么?
  • 投资收益在什么科目
  • 建筑业附加税税率是多少
  • 金税盘非征期汇总资料未报送
  • 已经提完折旧的固定资产报废
  • 已抵扣发票丢失如何处理
  • 酒店招募
  • 福利费计提包括奖金吗
  • win11任务栏没有输入法图标
  • iphone7如何设置输入法
  • 只有发票没有银行客户专用回单是啥意思
  • 疫情期间企业贷款利率多少
  • php多线程怎么实现
  • 怎么获取免费的腾讯vip
  • 新会计准则2020变化
  • web前端有哪些
  • 企业所得税税前扣除凭证管理办法
  • 预付货款账务处理会计分录
  • 厂房的设计审查要求
  • 污水处理厂能享受补助吗
  • 对公账户转入对私账户
  • 小程序官方组件展示
  • 网络销售税率怎么算
  • 酒类包装物押金的增值税处理规定
  • 个体工商户社保扣费不成功
  • 织梦cms怎么样
  • 其他收益算营业收入吗
  • 出租车公共服务
  • 公司一般户需要年检吗
  • 磁盘监控命令
  • 货物已到发票未开具
  • 房地产企业取得土地的契税如何记账
  • 公司基本账户提额怎么算
  • 定期定额征收和核定征收的哪种税率高
  • 收到广告费分录
  • 当月作废的发票是否需要报税
  • 发出库存商品没有发票
  • 多计提房产税怎么冲销
  • 其他应收款坏账准备计提标准
  • 管家婆里面的记账凭证怎么做?
  • 5000以下固定资产一次性计提折旧政策
  • 预计所有者权益增长率
  • 如何理解股权激励
  • 空头支票如何处罚
  • 私产公产企业产
  • mysql的外键
  • windows7/vista/server(no slic)
  • VirtualBox虚拟机免费
  • centos支持哪些cpu
  • 文件选项夹在哪里
  • xp电脑状态栏跑到左边了怎么设置回来
  • 苹果电脑装win7键盘无法使用
  • 英雄联盟windows10
  • 使用shell命令
  • JQueryEasyUI之DataGrid数据显示
  • python第六章函数
  • [Unity3D]Unity3D游戏开发之塔防游戏项目讲解(上)
  • 安卓手机管家
  • js 输入
  • 编写javascript代码
  • android手机屏幕采集触摸区域所有点
  • jquery新增属性
  • 重庆市网上税务局官网
  • 江苏省电子税务局怎么添加办税人员
  • 征管基础平台app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设