rest - 发出 HTTPS API 请求时的安全问题
问题描述
我的数据库中有一个表,我必须根据一些参数定期从中获取一些数据。我在想的是制作一个从服务器获取数据的 API(https 上的 POST 请求)。这是使用身份验证令牌以经过身份验证的方式完成的。在讨论同样的问题时,有人建议应该给特定的人 DB 访问权限,然后他使用 SQL 或其他方式与 DB 直接连接。他的论点是直接访问数据库,如果有人在访问时操纵 API 中的数据,我们可能会得到错误的结果。因此,在进行直接数据库连接时,除非他的配置文件被公开,否则一切都是安全的。没有人可以操纵任何东西。
我不相信这个想法。我认为直接访问数据库会暴露整个数据库,这本身就是一个非常大的威胁。此外,如果它是一个如此大的威胁,人们可以更改 API 中的数据,为什么每个人都会使用它。我不清楚整个事情是如何运作的!
所以,我想在这里理解的是,每当我们进行使用 auth_token 进行身份验证的 API 调用时,它是否仍然是一种威胁,有人可能能够在两者之间捕获数据?有人还能看到我在请求中发送的数据吗?
我不完全了解这些事情,只是需要一些帮助。也许正确的文章可以帮助我了解哪些数据会被公开,哪些不会。请帮忙。谢谢!
解决方案
将整个数据库配置暴露给最终用户是绝对不行的,因为它会产生很多安全问题。最终用户将看到比所需更多的信息,并且最终用户必须连接到数据库并填充查询以获取数据。服务器端不会有任何验证。
也许您可以通过在您的 Web 服务器中安装 SSL 证书来为您的 API 提供更多保护。这将有助于防止中间人攻击。
推荐阅读
- ios - 每小时运行一次 OAuth URLRequest?- 斯威夫特
- amazon-web-services - 我可以用 .aws/credentials 中的 IAM 角色替换 aws 密钥以供 boto3 使用吗?
- scala - Scala compiler infers overly specific type with complex type parameter
- javascript - 单击向下箭头时显示特定节点的下拉列表
- python - 通过使用 pandas 中断 url 来选择信息
- python - Python IsInstance() 用于类和子类
- xamarin - xamarin 形成动态图像 Tapgesture 识别器控件
- verilog - MSB 案例陈述
- matlab - 用于简单数学表达式等价逻辑的现有工具
- android - 插件版本以下的 kotlin 运行时