フロントエンドクエリビルダー(http://querybuilder.js.org/)からのユーザー指定のSQLクエリを受け入れたいアプリケーションがあります。そのクエリは、結果的にPostgresデータベースで実行してデータのサブセットを返すようにする必要があります。クライアント側のSQLを受け入れることはこれまでで大丈夫ですか?もしそうなら、検証する方法は?
上記のクエリビルダは、SQLまたはmongoクエリをエクスポートできます。
query.owner_of_document = userId
(ユーザが所有するドキュメントへの)結果を制限するために:私は、私は単にサーバー上でに追加することができますので、モンゴのクエリは、比較的安全である使用して想像してみてください。
SQLステートメントは、実行のために悪質なSQLストリングを格納しようとすると、インジェクション攻撃で潜在的にハイジャックされる可能性があります。
クライアントの悪い習慣からSQLを直接受け入れていますか?どのようにして、提供されたSQLが安全であることを保証できますか?
ありがとうございます!
* safe *を定義しようとすると、SQLでそれを確認することは難しいでしょう(共通テーブル式、副選択などを考えてください) –