我已经构建了一个 PHP API,它可以从在线 SQL 数据库中的一些表中查询数据。它连接到数据库的凭据保存在另一个文件中,并在启动时加载。具有这些凭据的用户仅具有 SELECT 特权。Android 应用程序只是连接到链接并获取数据,因此 API 根本没有输入。查询是预先编写在 PHP 脚本中的。数据库中的数据都是公开的,所以如果读取了脚本中没有的其他内容,这不是什么大问题。
这个设置对 SQL 注入有多脆弱?(或其他威胁)
我已经构建了一个 PHP API,它可以从在线 SQL 数据库中的一些表中查询数据。它连接到数据库的凭据保存在另一个文件中,并在启动时加载。具有这些凭据的用户仅具有 SELECT 特权。Android 应用程序只是连接到链接并获取数据,因此 API 根本没有输入。查询是预先编写在 PHP 脚本中的。数据库中的数据都是公开的,所以如果读取了脚本中没有的其他内容,这不是什么大问题。
这个设置对 SQL 注入有多脆弱?(或其他威胁)
如果没有用于构造查询的用户输入,则不存在 SQL 注入威胁。
这是允许 Android 应用程序从共享数据库中获取数据的一种相当好的方法。要考虑的主要事情是拒绝服务攻击 - 一个用户是否可以重复调用导致服务中断的端点(以及可能共享相同基础架构的其他应用程序或应用程序的一部分)?适当使用缓存和 IP 限制将在很大程度上缓解这种情况,并且在出现问题时向您发出警报的监控将使您能够根据需要处理其余的问题。
我能想到的唯一另一件事是标准的通用 Web 应用程序攻击,例如打开调试信息(在错误时泄漏 db 凭据、文件名等)、slowloris 等等,但这些并不特定于您的情况。