2017-02-18 7 views
1

私はモバイルチケットシステムを開発しています。私は埋め込みSymmetricDSに対する要件を見直しています。これまでの唯一の固執点は、行レベルのセキュリティの問題に直接対処する情報を見つけることができないことです。SymmetricDSで行レベルのセキュリティを実装する

使用事例:

は、モバイル販売時点ノードのいくつかは売り手、経営者などの一部として記録されます。誰もが他の人の売り上げを見ることができます。売り手は新しい販売を作ることができますが、決してそれらを変更することはできません。管理者は既存の販売を変更できますが、削除することはできません。

問題:

私はAndroidのモバイルPOSユニットを厳密にコントロールを持っていないので、彼らが信頼されない - それは逆コンパイルAPKから悪質な販売者を防ぐために、現実的ではないですし、悪意のあるを作成しますクライアントノード。私の環境には、悪質な売り手がサーバー上のsalesテーブルを変更することを許可できないようなセキュリティ要件があります。 I は、架空の悪意のある販売者がマネージャの資格情報にアクセスできないと信じており、サーバーソフトウェアが安全であると信じることができます。

質問:

  1. サーバー側の行レベルのセキュリティは、ロード・フィルタのための仕事ですか?
  2. フィルタスクリプトは、変更を発生させたnode_idにアクセスできますか?
  3. フィルタスクリプトは、元のノードを登録するために使用された認証資格情報にアクセスできますか?
+0

行レベルのセキュリティはどういう意味ですか? –

+0

行レベルのセキュリティとは、個々の行へのCRUDアクセスを制御するメカニズムがあることを意味します。ユーザー 'B'はすべての行を更新できますが、何も削除することはできません。ユーザー 'A'は行1を更新することができます(作成したため)。 –

答えて

2
  1. はい。一部のノードは、特定のノードグループに限定された更新のように、ライターフィルタを使用して実装することができます。ノードから行を削除することを無効にするということは、そのノードグループに対して削除トリガーをまったく作成しないことを意味します。
  2. はい、可能です。抽象ロードファイルの拡張で実装されるメソッドは、呼び出し元の外部IDを保持する引数を受け入れます(org.jumpmind.symmetric.io.data.Batch#getSourceNodeIdおよびDataContext#getBatch()
  3. すべてのノードで基本認証が同じです。ハンドシェイクが実行されると自動的に生成され、dbに格納されるパスワードがあります。あなたのロードファイルがデータベースにアクセスするために使用できるエンジンの注入を可能にする対称性インターフェースISymmetricEngineAwareを実装させようとする。
+0

よかった、ありがとう。考慮すると、#3はディール・ブレーカではありません。私はノード<=>ユーザIDテーブルを持つことができます。ここでは、ノードは独自の行のみを変更できます。行レベルのセキュリティを実装できると仮定します。 :-) –

関連する問題