查询时如何限制/混淆MySQL值

时间:2012-10-10 23:30:25

标签: mysql api obfuscation

所以我正在构建一些API,用户可以使用只读访问权限查询我的数据库。但是,我想阻止某些字段,特别是IP地址。我目前正在PHP中使用preg_replace来匹配和切换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

我如何诱饵和转换?

1 个答案:

答案 0 :(得分:2)

你可以create a view of your table省略带有IP地址的字段,让API用户查询该视图,但不查询基础表。

实际上,您的API不应在查询的后端尝试执行“损坏控制”,而应该在之前过滤查询,然后再将其发送到数据库。将来自外部世界的原始SQL查询传递到您的数据库中是非常不可取的。