经常需要一个搭建 httpserver 来远程下载文件,我通常都是使用python 起。
1
2
|
python3 -m http.server 65534
python2 -m SimpleHTTPServer 65534
|
但是这样有个坏处就是存在目录遍历,当挂了很多文件的时候容易被溯源和利用。
有个想法,就是只有访问到正确路径 200 才下载,404 则重定向到某个固定链接,用 flask 可以很方便的实现。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/4/28 11:19
# @Author : niudaii
from flask import Flask, redirect, send_from_directory
app = Flask(__name__)
@app.route('/xxxxx/<name>')
def hello_world(name):
return send_from_directory(r"./",filename=name,as_attachment=True)
@app.errorhandler(404)
def page_unauthorized(error):
return redirect("https://www.qianxin.com/")
if __name__ == '__main__':
app.run(host="0.0.0.0",port=65534, debug=True)#
|
比如要下载 a.jpg,访问 http://vps:65534/xxxxx/a.jpg 即可