問題タブ [database-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 一部のテーブルでの SQL Server テーブル操作 (INSERT および DELETE) の防止
データベースでランダムな sql クエリを使用しているときに、名前を誤って入力しただけで、一部のデータベース テーブルにアイテムを挿入または削除したくない場合があります。では、安全に作業できるように、それらを「編集」にロックする方法。
ありがとう。
database - サーバーが盗まれた場合、PostgreSQLデータベースはどの程度安全ですか?
PostgreSQLのトップシークレットデータのデータベースを備えたサーバーがあり、パスワードを推測することは事実上不可能です(手作業で生成された、あらゆる種類の奇妙な文字の128文字の文字列)。サーバーのパスワードも事実上推測できません。
パスワードの推測は別として、このデータベースからデータを取得するのはどれほど簡単ですか?
仮定:
- サーバーにはDBのみが存在します。PHPスクリプトなどにパスワードはありません
- サーバーを盗んだのはサーバー/DB/ハードドライブの回復の専門家です
- 私は保護のためにハードドライブの暗号化や標準外のものを使用していません
- Ubuntu Hardy(最新の安定バージョン)を使用しています
私は、誰かが私のサーバーのハードドライブに物理的にアクセスすることに伴うリスクを理解しようとしています。
database - データベースの設計についてクライアントに尋ねる質問と考慮事項
タイトルが示すように、アプリケーション用のデータベースを設計する前にエンドユーザーに考慮すべき最も重要な質問は何か、あなたのアドバイスを聞きたいです。データベース指向のアプリを作成し、データベースのセキュリティ(アクセス制御、暗号化、整合性、バックアップ) に特別な注意を払います... データベースは、法規制で機密と見なされている人々に関する個人情報も保持するため、セキュリティ良いに違いない。
私はデータベースを使って学校のプロジェクトに取り組みましたが、このデータベース セキュリティが実際に意味を持つ「現実の世界」で作業するのはこれが初めてです。
それで、インターネットでいくつかのアドバイスや質問を見つけましたが、ここでは常に最高のものを見つけます. すべての助けに感謝します!ありがとうございました!
database - データベースのセキュリティ/スケーリングに関する質問
通常、MySQL や PostGreSQL などのデータベースを、それを使用するアプリケーションと同じマシンで使用します。これにより、アクセスが簡単かつ安全になります。私はちょうど今、別の物理データベース サーバーを持つ最初のサイトを構築しています (今年後半に予定されています)。私は3つのことを疑問に思っています:
- (セキュリティ) 別のマシンのデータベースにアクセスするセキュリティに関して、まず何を調べる必要がありますか?
- (スケーラビリティ) 私が考えるべきスケーラビリティの問題はこれに関連していますか? (テクノロジーに依存しません)?
- (もっと
ServerFault
似ていますが関連しています)同じ物理サーバー(別のVMWare VMを使用)でDBを開始し、後で別の物理サーバーに移動する場合、対処しなければならない暗黙の問題はありますか?経由で別の VM にアクセスしていlocalhost
ませんか?
これらの質問が完全にばかげている場合は、DB の専門家に謝罪します。
asp.net-mvc-2 - ASP.NET MVC2 と MS SQL Server を使用して共有データベースにテナント ビュー フィルター セキュリティ パターンを実装する方法
ASP.NET MVC2 で SaaS 基幹業務アプリケーションの構築を開始していますが、開始する前に適切なアーキテクチャ基盤を確立したいと考えています。
データ アーキテクチャとビジネス ロジックが非常にシンプルになり、効率性と費用対効果が重要な問題になるため、私は共有データベースと共有スキーマのアプローチに取り組んでいます。
テナント間でデータを適切に分離するために、テナント ビュー フィルター セキュリティ パターンを実装したいと考えています (こちらをご覧ください)。これを行うには、アプリケーションにログインしているユーザーに基づいて、アプリケーションがさまざまなテナント (DB ログイン) を偽装する必要があります。ログイン プロセスはできるだけシンプルにする必要があります (エンタープライズ クラスのソフトウェアにはなりません)。そのため、顧客はユーザー名とパスワードのみを入力する必要があります。
ユーザーは、 http ://tenant1.myapp.comやhttp://tenant2.myapp.comなどの独自のサブドメイン (サブドメイン ルーティングを使用) を介してデータにアクセスします。
このシナリオを満たす最善の方法は何ですか?
hash - 個人データから個人の身元を分離する方法は?
私は、ユーザーの購入リストを保持することを主な目的とするアプリを書いています。
開発者としての私(またはデータベースへの完全なアクセス権を持つ人)でさえ、特定の人が費やした金額や購入した金額を把握できないようにしたいと思います。
私は最初に次のスキームを思いついた:
- ユーザーはユーザー名とパスワードを使用してログインします。
- パスワードから計算します
user_hash
(おそらく塩漬けなどで)。 - ハッシュを使用して、通常のSQLクエリでユーザーデータにアクセスします。
十分な数のユーザーがいることを考えると、特定のユーザーが自分の名前を知っているだけでどれだけのお金を費やしたかを知ることはほとんど不可能です。
これは賢明なことですか、それとも私は完全に愚かですか?
sql-injection - サイトの脆弱性をテストできる SQL インジェクション ツールはありますか?
サイトの脆弱性をテストできる SQL インジェクション ツールはありますか? 良いものはありますか?無料のものは良いでしょう。
sql-server-2005-express - WinFormのSQL2005Expressデータベースのデータを保護するにはどうすればよいですか?
SQL 2005 Expressを使用するac#winformアプリケーションがあります。このアプリケーションは、数学と読書のクイズを作成し、学齢期の子供の親に販売されています。両親は私のウェブサイトからクイズを含むSQLファイルを購入してダウンロードし、それらをアプリケーション(子供のコンピューターにインストールされている)にインストールします。
SQLのセキュリティに関する懸念が2つあります。
(1)一部の子供は、クイズを自分のコンピューターに表示したくない場合があるため、(a)SQLデータベースを削除するか、(b)データベースの値を変更してアプリケーションを無効にしようとする場合があります。
SQL Server Management Studio Expressを使用している人なら誰でも、データベースの内容を簡単に変更できるように思えます。
したがって、これを防ぐために何ができるでしょうか(子供に管理者アカウントを使用させないように親に勧める以外に)?
(2)私の収入はクイズの販売だけなので、このデータがコピーされたり共有されたりしないように保護したいと思います。(a)ファイルをサーバーから子のコンピューターにダウンロードしてからインストールする必要があり、(b)インストールすると、ファイルは子のコンピューターに常駐するだけである場合、これを行うにはどうすればよいですか。
SQL Database Publishing Wizardを使用している人なら誰でも、データベースの内容を簡単にコピーできるように思えます。
アプリケーションにSQLデータベースへのアクセスのみを許可することは可能ですか?他のすべてのユーザー(Windows管理者アカウントを使用しているユーザーも含む)のアクセスを制限することはできますか?
現在、私のアプリケーションのインストールスクリプトは、私のアプリケーション専用のSQL 2005 Expressサーバーの新しいインスタンスを作成し、Windows認証を使用します。
Stackoverflowやその他の場所でSQLセキュリティに関する投稿をいくつか読んだことがありますが、まだ理解できていません。
sql - 動的 SQL を使用した Stored Proc に対する SQL Server 権限
アプリケーションの役割を持つデータベースがあります。ロール メンバーはすべて、Active Directory のグループに属しています。テーブルから選択する権限をロールに与える代わりに、呼び出す必要があるすべてのストアド プロシージャに対する実行権限をロールに与えました。
これは、動的 SQL を構築して sp_executesql を呼び出すストアド プロシージャの 1 つを除いて、正常に機能します。
動的 SQL は次のようになります。
このロールのユーザーは、ストアド プロシージャの呼び出しに失敗しています。次のようなエラーが発生しますが、これは予想されることです。
オブジェクト 'uvView1'、データベース 'Foobar'、スキーマ 'dbo' に対する SELECT 権限が拒否されました。
動的 SQL のすべてのビューにロール権限を付与せずに、ユーザーにこのプロシージャを正常に実行させる方法はありますか?
sql-server - 組み込みの「ストアド プロシージャ エグゼキュータ」データベース ロールがないのはなぜですか?
データベース ロール ( db_datareader
、db_datawriter
、db_ddladmin
など)のリストにdb_storedprocedureexecutor
. 他の方法は理にかなっていますが、特定のユーザーにすべてのストアド プロシージャを実行する機能を付与できるように思えます (それらを付与せずにdb_owner
、同じことを達成する唯一の他の方法です)。
たとえば、開発者全員にストアド プロシージャを実行する権限を付与し、DDL を実行させないようにしたいとします。すべてのストアド プロシージャに明示的に EXECUTE を付与する必要はありません (さらに、追加の SP がデプロイされたときに新しいものを追加することを忘れないでください)。 、これを行う方法はありません(SPにDDLを含めることができることはわかっているため、この方法でDDLへのアクセスを間接的に許可することができます)。
アプリケーション サービス アカウントと、アプリケーションに付随する多数のストアド プロシージャがある場合、すべての SP に明示的に権限を付与する必要があります (アプリケーション サービス アカウント DBO を付与したくないため)。必要なものを更新/削除できるようにする役割。
最初は明らかなように思えましたが、なぜこの役割がデータベースサーバーにないのか、今ではわかりません.なぜこれがひどい考えなのか、誰かが説明できますか?
編集:
この期待を持っているのは私だけではないようです-そして、それは一握りのT-SQLで回避されています(あなたができるとは知りませんでしたが、ブランケットEXECUTE権限を付与できるようです)。なぜそれが標準ではないのですか!