我的网站是http协议。我的烧瓶API通过flask-httpauth(https://github.com/miguelgrinberg/Flask-HTTPAuth)保护。我的Flask REST API有多安全?
有一个在我的瓶API的前监听的私人端口5000的客户端API请求先去龙卷风服务器,然后调用API瓶
这是我有流动的旋风Web服务器去:
我的网站(在http)---> corpauthentication(上HTTPS) - >回我的网站(HTTP) - >客户端调用龙卷风服务器 - >龙卷风调用API瓶和返回结果
我的API和网站有多安全?我正在阅读这个链接Security of python flask REST API using HTTP Basic Authentication,在我看来,API是安全的,但我永远无法确定。
如果它不安全,您认为我能做些什么才能使它更安全?由于需要进行身份验证,因此我觉得在UI方面它非常安全。但是让我们说有人在我的端口80上进行侦听,即使有龙卷风+ httpbasic认证,他们是否能够跟踪任何API请求?
这是我的龙卷风Server代码:
from tornado.wsgi import WSGIContainer
from tornado.ioloop import IOLoop
from tornado.web import FallbackHandler, RequestHandler, Application
from flaskfile import app
class MainHandler(RequestHandler):
def get(self):
self.write("This message comes from Tornado ^_^")
tr = WSGIContainer(app)
application = Application([
(r"/tornado", MainHandler),
(r".*", FallbackHandler, dict(fallback=tr)),
])
if __name__ == "__main__":
application.listen(5000)
IOLoop.instance().start()
这是我打电话是从我的JavaScript API:
$.ajax({
url: 'http://x.x.x:5000/data',
type: 'GET',
dataType: 'json',
async: false,
headers: {
"Authorization": "Basic " + btoa("username" + ":" + "password")
},
data: {start: startdate, end: enddate},
success: function(result) {
data = result.results;
}
});
我听说把龙卷风本身暴露在网上并不是一个好主意。我把它放在像nginx这样的web服务器后面,它可以异步地将有效的请求传递给龙卷风,并丢弃/阻止任何其他请求以及主机静态文件。您也可以将https添加到您的龙卷风实例。 – NuclearPeon
您是否通过普通HTTP发送登录凭据?如果是这样,哪个端口无关紧要,这是不安全的。 – jwodder