1

因此,我正在构建一些 API,用户可以在其中以只读访问权限查询我的数据库。但是,我想阻止某些字段,特别是 IP 地址。我目前preg_replace在 PHP 中使用来匹配和切换 IP,但我觉得有人可以通过巧妙的字符串拆分 MySQL 函数来解决这个问题。

有没有办法可以阻止/替换/混淆这个只读 MySQL 用户的特定字段?

记录将位于(table.field):

`TrafficIp`.`Value`

他们可能使用的示例查询是

SELECT COUNT(*) Hits, Value IpAddress
FROM TrafficIp
INNER JOIN Traffic
ON Traffic.IpId = TrafficIp.Id
GROUP BY Value
ORDER BY Hits DESC

我将如何诱饵和切换?

4

1 回答 1

2

您可以创建一个省略 IP 地址字段的表视图,并让 API 用户查询该视图,而不是基础表。

实际上,与其尝试在查询的后端进行“损害控制”,您的 API 应该在查询进入数据库之前对其进行过滤。仅将来自外部世界的原始 SQL 查询传递到您的数据库中是非常不可取的。

于 2012-10-10T23:32:11.157 回答