首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使Flask API更加安全

使Flask API更加安全
EN

Stack Overflow用户
提问于 2016-02-20 07:05:14
回答 1查看 1.7K关注 0票数 0

我使用Flask-HTTPAuth (https://github.com/miguelgrinberg/Flask-HTTPAuth)通过用户名和密码来保护我的应用程序接口。因为它是在端口8080上运行的,所以我在我的VM上打开了这个端口并将其公开。我还能做些什么来使API更安全?

顺便说一句,我在Flask前面使用Tornado作为一个可伸缩的服务器。我是唯一一个使用API的人,因为对我来说,拥有一个用户名-密码对是一个可行的选择。

谢谢。

编辑-我可以在Windows防火墙上做些什么来提高端口8080的安全性吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-20 07:25:05

以下是我看到的一些风险(没有特定的顺序)以及缓解它们的方法:

服务器配置错误

如果您的服务器存在可利用的安全错误或配置错误,则可能允许他人访问该计算机,从而访问您的数据库。为了防止这种情况,最佳实践包括自动应用安全更新,安装NDS等(听起来像是你在corpnet后面得到了相当多的保护)

密码侦听

HTTP Basic身份验证是明文发送的,因此理论上您网络中的任何人都可以嗅探您的网络流量,窃取您的密码,然后连接到机器本身。这里的最佳实践是使用HTTPS和一些其他协议进行身份验证。这里的需求归结为您试图保护这些信息不受影响的人。

API漏洞

任何API都会向系统提供输入,这可能会导致漏洞。SQL注入攻击是一种常见的数据库攻击方式。确保从不执行原始SQL查询,并采取其他最佳实践(边界检查等)

暴力攻击

如果没有密码,恶意用户只需不断尝试不同的组合,直到找到一个成功工作的组合。这里的解决方案包括使用强密码,实现节流和日志记录来检测暴力破解攻击。这里的其他攻击包括泄漏信息(例如,当更多的密码错误时,返回速度更快,导致更快地猜测正确的密码)

TL;DR

对于您的用例(单个用户访问,在企业帐户后面),我认为http basic auth可能是一个合理的选择。你的决定应该归结为: 1)你在多大程度上信任网络上的其他用户2)你试图保护的数据(比如信用卡或健康信息等)有多有趣。

如果您不信任您的公司网来保护您的数据安全,或者正在寻找更深入的防御,我会考虑使用https来防止嗅探密码,然后使用强密码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35516693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档