位置: 编程技术 - 正文

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

  • 不含税买货合法吗
  • 未分配利润转增股本会计处理
  • 合伙企业当年盈亏怎么算
  • 实收资本变动额怎么算
  • 买电脑所有配件
  • 个体户城市维护建设税减免性质
  • 增值税改革后增值税申报表怎么填写
  • 银行基本户可以变更成一般户吗
  • 国际货运代理0税率和免税
  • 年前采购
  • 未确认融资费用是一级科目吗
  • 应收账款转让的会计处理
  • 固定资产待抵扣进项税率
  • 期初建账库存少录数量会计怎么处理
  • 品种法完工产品成本的单位成本怎么算
  • 递延收益可以是负数吗
  • 能否异地进行税款支付?
  • 税控盘费用抵减增值税
  • 水泥厂水泥增值税率是多少?
  • 机票上exempt yqcny是什么意思?
  • 选择纳税人身份考虑的因素
  • 工程结算收入和应收账款的区别
  • 上年免税收入转内销补交税分录
  • 公司的车卖了
  • 生产企业出租设备如何开票
  • 第三方软件测评费的取费标准
  • win10鼠标在哪
  • 为什么我的win10
  • 公允价值变动损益在利润表哪里
  • 如何快速判断
  • 如何卸载win10
  • 公司简易注销的公示期多长时间
  • 系统远程桌面连接怎么用
  • 代缴房产税代缴的人要负责吗
  • 尚品汇在哪
  • 利用php生成静态数据
  • linux用cat命令查看
  • 税费减免政策2020
  • 权益后利润是净利润么
  • 运输途中发生的费用
  • 生产企业出口转内销增值税申报表怎么填
  • .dot python
  • RedHat6.5/CentOS6.5安装Mysql5.7.20的教程详解
  • mongodb启动命令 linux
  • 跨年租金如何确权
  • 汽车租赁属于经营租赁吗
  • 差旅补助要计入成本吗
  • 残疾人就业保证金上年工资总额是说上一年度么
  • 房产税的纳税义务人是征税范围内房屋产权所有人
  • 累计折旧计提会计分录
  • 列入固定资产的标准
  • 工程结算与工程施工的差额在哪填列
  • 银行手续费发票未到怎样做账
  • 进项税额转出之后怎么处理
  • 购货方尚未偿付的货款属于什么会计科目
  • 台账和明细账有什么区别
  • 存货的实际成本法
  • 养老院老人摔倒责任划分
  • 关联企业有什么好处
  • 短期薪酬主要包括
  • winxp cmd
  • sqlserver 自动备份所有数据库的SQL
  • win8电脑触摸屏没反应怎么办
  • win1020h2正式版
  • msdev.exe是什么
  • win7旗舰版开机
  • opengles版本过低怎么办
  • ExtJs扩展之GroupPropertyGrid代码
  • unity怎么打光
  • node.js怎么学
  • 一周总结家长寄语
  • jquery选择id
  • jquery 使用
  • javascript教程完整版
  • javascript原理详解
  • 新能源汽车车船税
  • 北京地税税务总局官网
  • 辽宁省耕地占用税税率
  • 党员逝世可否盖党旗
  • 华为西安总代理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设