0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[審美眼を鍛えようシリーズ] アクセス管理を考える・バックエンドは最後の砦

0
Posted at
Page 1 of 9

アクセス管理とは

  • リソースにアクセスできる人の管理
  • 部署・役職での制御
  • 操作による制御
    • 更新系はより強い権限が必要

実装方法について

  • フレームワーク的なものはなかなか存在しない
  • 業務仕様に深く関わるので、汎用化が難しい
    • レコード単位で、所有者のみ更新可能、などの制御が可能なDBもあるにはある
  • 今は地道に実装するしかない・・・

ブラウザアプリにおける重要な認識

  • ブラウザのF12ツールで任意のリクエストを投げることが可能
  • つまり想定外の操作がいつでも可能

どう対処するか

  • ブラウザ側で対処するには限界があるし、全ての穴は塞げない
  • サーバー側で守るしかない
  • リクエスト中の情報を無闇に信用しない

サーバー側で守るしかない!!


アクセス管理の実装

  • 特に気を付けるべきは更新系(UPDATE/DELETE)
  • URLやペイロードで指定されたデータを
    ログイン中ユーザーが更新する権限を持つかどうか
  • このチェックは 絶対に怠ってはならない

怠ると何が起きるか

  • F12ツールから任意のデータをGETしたり、PUT/DELETEしたりできてしまう
  • 情報漏洩と改竄が起きる

最後に

  • リクエスト中の情報を無闇に信用しない
  • バックエンドでのチェックは必須、フロントはプラスアルファ
  • インターネット公開されるWebアプリでは必ず必要
    • 社内に閉じたシステムは悪意を想定する必要性は薄くなる・・・か?
    • バグやミスもあるので、対象した方がよい
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?