位置: 编程技术 - 正文

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

  • 注册商标费用计算方法
  • 信息采集需要填两个家庭成员,但只能有一个监护人
  • 税额和税款的区别
  • 出资人和法人承担责任
  • 单位承担的社保费用计入应付职工薪酬科目吗
  • 经营租入的固定资产是资产吗
  • 进出口代理公司哪家好
  • 非破产清算会计案例
  • 非货币性资产交换准则
  • 旧公司库存如何管理
  • 多交税款抵税会计分录
  • 固定资产怎么盘点
  • 租客一次性支付一年租金需要交个税吗
  • 企业代开租金专票开什么项目好?
  • 文体活动费用计入什么科目
  • 公司奖励旅游算休年假吗
  • 增值税免税收入进项税额转出
  • 分公司银行开户需要章程吗
  • 冲减往年收入会计分录
  • 无形资产摊销方法应当反映其经济利益
  • 统一社会信用代码证
  • 申报税是什么时候申报
  • 公司地址变更代办需要多少钱
  • 华为手机屏幕旋转设置
  • 如何冲回以前年度账户
  • 一个集团的分公司干过活再去另一个分公司会被发现吗
  • php ioc
  • 企业当期产生的外币报表折算差额
  • 购销合同违约罚款属什么科目
  • 红利所得的税法规定
  • 职工教育经费超过可以结转以后年度怎么做账
  • 增值税的计税依据包括消费税吗
  • php目录结构
  • 用交易所转付货款怎么转
  • PHP:imagefilledellipse()的用法_GD库图像处理函数
  • 本月增加的无形资产数量
  • 法人提取备用金多久归还
  • 保姆级教程什么意思
  • 万能的python
  • 微软调整bing输入字数
  • pwcorr_a命令
  • 法定的盈余公积是什么
  • 产成品报废会计处理
  • 税前扣除项目主要包括
  • 出差的招待费算差旅费
  • 社保信息修改到哪里办理
  • 普通发票的税费计入应交税费吗
  • 季度所得税申报怎么弥补以前年度亏损
  • 单位食堂不对外营业需不需要办理经营许可证
  • 承租人融资租赁会计账务处理
  • 开发成本属于哪一类科目
  • 房产评估增值是什么意思
  • 会计账簿记账规范要求
  • 影视公司临时演员怎么办
  • 差旅费抵扣政策内容
  • 如何理解预付年金终值期数和系数和记忆方法
  • 研发费用扣除75%
  • win8创建新用户
  • winxp系统纯净版
  • 服务器维护和计划的区别
  • ubuntu git not found
  • windows7与xp共享文件夹
  • mac osx 10.8
  • 如何升级win
  • win10安装不了ie
  • 在Linux系统中如何打开R语言控制台
  • win7 64位旗舰版电脑鼠标如何才能设置成左手操作?设置鼠标为左手操作的方法
  • andriod 控件
  • unity怎么念
  • fetch怎么用
  • parseint函数功能
  • shell echo-e
  • 幼儿园放鞭炮
  • nodejsorg
  • fragment detach
  • jquery1.12.4
  • 如何实现高质量发展
  • ubuntu没有xauthority
  • javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
  • 在哪里查看法律
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设