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 に答える