Webアプリケーションからデータベースにアクセスするためのベストプラクティス

codeninja.sj

私の質問は間違っているかもしれませんが、MySQLデータベースにアクセスするWebアプリケーションの設計には疑問があります。

次の会話は私と私の友人の間で起こりました。

友人から、システムのユーザーロールごとに個別のユーザーアカウントを作成するように求められ、管理者ユーザーに対してのみ削除オプションを有効にするように求められました。

+-----------+-----------------+                 
|User role  | Db credential   |
+-----------+-----------------+     
|Admin      | Admin           |   
+-----------+-----------------+       
|User       | User            |        
+-----------+-----------------+

私が言ったように、dbにアクセスするためのユーザーアカウントは1つだけで、他のすべてのものは承認の原則によって実行できます。「Webアプリケーションの開発中は、すべての開発者に複数のdbユーザーアカウントを使用できますが、Webアプリケーションの展開中にはデプロイされたアプリケーションのユーザーアカウントは1つだけです。」

+---------+-------------+  
|User role|Db credential|  
+---------+-------------+  
|Admin    | Only one    |  
+---------+user account +  
|User     | for web app |  
+---------+-------------+  

私の友人は、SQLインジェクションを回避するために、彼が言ったようにシステムを設計できると私と議論しました。私はそれを考慮するのは全く間違った議論だと思った。

特にユーザーロールとdbユーザー資格情報を使用してWebアプリケーションを設計する際のベストプラクティスを見つけるのを手伝ってください。私は友達に混乱しています。

ins0

通常、データベースにアクセスできるmysqlアカウントは1つだけですが、(セキュリティを強化するために)1つのアプリケーションにアカウントを増やしても意味がありません。システムが危険にさらされると、アプリケーションコードで定義する必要があるため、すべてのログインがリークされるためです。

反対側では、多くのmysqlアカウントを持つ攻撃者に攻撃の可能性を高めます。

したがって、1つのアプリケーションで複数のアカウントを使用するために残されているのは、データベースに対するユーザーアクションにアクセスすることです(編集権限のないユーザーaを制限するなど)。

ユーザーがデータベースに対して行うべきこと(削除a、編集b)は、アプリケーションロジックで処理する必要があります。ユーザーごとの操作アクセスを制限することをお勧めします(たとえば、outfileへの書き込みを許可しないなど)。そのような単純なことを処理しないでください。コスト(ユーザーごとの複数のデータ接続)は、優れたプログラミングロジックよりもはるかに高いと思います。

したがって、複数のアカウントが無意味である場合のセキュリティを強化し、強力なパスワードを持つ1つのアカウントを使用して、プログラミングロジックによって簡単なアクションで編集、削除などを処理できるようにします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

サーバーからAndroidアプリケーションにデータを送信するためのベストプラクティス

分類Dev

WebアプリケーションでCRMに接続するためのベストプラクティス

分類Dev

Go Webアプリケーションを更新するためのベストプラクティス

分類Dev

ストリーミングデータフローからBigtableにアクセスするためのベストプラクティスは何ですか

分類Dev

最小限のダウンタイムでJava Webアプリケーションをデプロイするためのベストプラクティス?

分類Dev

Azure ActiveDirectory-アクセストークンを保存するためのMVCアプリケーションのベストプラクティス

分類Dev

Androidアプリケーションでオンラインデータをクエリするためのベストプラクティス?

分類Dev

Java Swingデスクトップアプリケーションを国際化するためのベストプラクティスは何ですか?

分類Dev

Android:アプリケーションの複数のアクティビティから単一のデータベースにアクセスしますか?

分類Dev

アプリケーション間でコントローラーインスタンスを共有するためのベストプラクティス?

分類Dev

Angularjsアプリケーションで$ rootscopeを使用するためのベストプラクティスは?

分類Dev

Electronアプリケーションを保護するためのベストプラクティス

分類Dev

Springでアプリケーション全体のデータを保持するベストプラクティス

分類Dev

Extjs / Javaアプリケーションにセキュリティを実装するためのベストプラクティス

分類Dev

スプリングブートアプリケーションの値を格納するためのベストプラクティスは何ですか?

分類Dev

多層アプリケーションの入力データを検証するためのベストプラクティス

分類Dev

非常に大規模なWebアプリケーションのためのVue-Routerのベストプラクティスは何ですか?

分類Dev

半信頼のマシンからsshサーバーにアクセスするためのベストプラクティス/安全なアプローチ

分類Dev

Webアプリケーションで不明なURLを処理するためのベストプラクティスは何ですか?

分類Dev

Java Webアプリケーションのベストプラクティス

分類Dev

FlutterアプリケーションのAndroidとiOSを配布するための最良の方法。Flutterベータ分布のベストプラクティス

分類Dev

シングル(1)ページアプリケーションでサーバーからデータを取得する-ベストプラクティス

分類Dev

AmazonにSpringBootアプリケーションをデプロイするためのベストプラクティス

分類Dev

ASP.NETアプリケーションでセッションを確認するためのベストプラクティス

分類Dev

古いSpark1.2.0アプリケーションログをクリーンアップするためのベストプラクティス?

分類Dev

Laravelのコントローラーからモデルにアクセスするためのベストプラクティス

分類Dev

Webアプリの一時データを保存するためのベストプラクティス

分類Dev

プレーンなJavascriptAzure WebアプリケーションからアクセスするためのプライベートAPIキーをどこに保存しますか?Web.configまたはC#はありません

分類Dev

JUnitは、正しいアプリケーションコンテキストをロードしているにもかかわらず、間違ったデータベースへのアクセスをテストします

Related 関連記事

  1. 1

    サーバーからAndroidアプリケーションにデータを送信するためのベストプラクティス

  2. 2

    WebアプリケーションでCRMに接続するためのベストプラクティス

  3. 3

    Go Webアプリケーションを更新するためのベストプラクティス

  4. 4

    ストリーミングデータフローからBigtableにアクセスするためのベストプラクティスは何ですか

  5. 5

    最小限のダウンタイムでJava Webアプリケーションをデプロイするためのベストプラクティス?

  6. 6

    Azure ActiveDirectory-アクセストークンを保存するためのMVCアプリケーションのベストプラクティス

  7. 7

    Androidアプリケーションでオンラインデータをクエリするためのベストプラクティス?

  8. 8

    Java Swingデスクトップアプリケーションを国際化するためのベストプラクティスは何ですか?

  9. 9

    Android:アプリケーションの複数のアクティビティから単一のデータベースにアクセスしますか?

  10. 10

    アプリケーション間でコントローラーインスタンスを共有するためのベストプラクティス?

  11. 11

    Angularjsアプリケーションで$ rootscopeを使用するためのベストプラクティスは?

  12. 12

    Electronアプリケーションを保護するためのベストプラクティス

  13. 13

    Springでアプリケーション全体のデータを保持するベストプラクティス

  14. 14

    Extjs / Javaアプリケーションにセキュリティを実装するためのベストプラクティス

  15. 15

    スプリングブートアプリケーションの値を格納するためのベストプラクティスは何ですか?

  16. 16

    多層アプリケーションの入力データを検証するためのベストプラクティス

  17. 17

    非常に大規模なWebアプリケーションのためのVue-Routerのベストプラクティスは何ですか?

  18. 18

    半信頼のマシンからsshサーバーにアクセスするためのベストプラクティス/安全なアプローチ

  19. 19

    Webアプリケーションで不明なURLを処理するためのベストプラクティスは何ですか?

  20. 20

    Java Webアプリケーションのベストプラクティス

  21. 21

    FlutterアプリケーションのAndroidとiOSを配布するための最良の方法。Flutterベータ分布のベストプラクティス

  22. 22

    シングル(1)ページアプリケーションでサーバーからデータを取得する-ベストプラクティス

  23. 23

    AmazonにSpringBootアプリケーションをデプロイするためのベストプラクティス

  24. 24

    ASP.NETアプリケーションでセッションを確認するためのベストプラクティス

  25. 25

    古いSpark1.2.0アプリケーションログをクリーンアップするためのベストプラクティス?

  26. 26

    Laravelのコントローラーからモデルにアクセスするためのベストプラクティス

  27. 27

    Webアプリの一時データを保存するためのベストプラクティス

  28. 28

    プレーンなJavascriptAzure WebアプリケーションからアクセスするためのプライベートAPIキーをどこに保存しますか?Web.configまたはC#はありません

  29. 29

    JUnitは、正しいアプリケーションコンテキストをロードしているにもかかわらず、間違ったデータベースへのアクセスをテストします

ホットタグ

アーカイブ