• 締切済み

会員制サービス上での、各種アカウントの扱い

LAPP(Linux + Apache + PostgreSQL + PHP)環境で、下記のようなWebアプリケーションの開発を仮定します。 ・会員制のサービスで、メンバーにはメールアドレスを付与する。(Postfix使用) ・そのメールアカウントは、メールボックスに配信 or 登録されたアドレスに転送する機能を持つ。 ・メールボックスに配信するか転送するか、及び、転送先アドレスは各ユーザがPHP経由でDBに登録・変更。 ・会員同士が利用できる掲示板(書き込み削除は、投稿者または管理者のみに許可)を提供する。 ・その他こまごまとした一般的なシステムを提供する。(まだ具体的ではありません) ここで、アカウントと呼べるものは、  A: このサービスのアカウント(DB上のテーブルで管理)  B: Linuxのユーザーアカウント  C: データベースアカウント があると思いますが、それぞれのAのアカウントに、B,Cのシステム上のアカウントも発行すべきでしょうか? (B,Cのアカウントは、システム内部で使用するもので、ユーザーが直接使用するものではありません。) パターン1 : Aのアカウントのみ。DB等にアクセスする場合は、一般ユーザー用の共用アカウントを使用する。 パターン2 : Aのアカウントに対応する、B,Cのアカウントを発行して、ユーザー毎にそれぞれのアカウントを使用する。 パターン2の方が、B,Cのアカウントに対する権限が細かく設定できるようになるので、セキュリティを上げられる可能性があると思っています。(その分、管理は大変になると思いますが。) そこで、それぞれのメリット・デメリット、セオリー(一般的にはどちらのパターンが使用されるか)、その他パターンの可能性をご教授願えれば、と思っています。 よろしくお願いいたします。

  • MySQL
  • 回答数1
  • ありがとう数0

みんなの回答

  • nebel
  • ベストアンサー率37% (117/308)
回答No.1

システムの設計次第だとおもいますが。 まず、Aは必須ですよね。 ここでお尋ねしたいのは、BとCのアカウントは何のために必要なのか?です。 機能としては、 ・メールアドレスの付与 ・掲示板の利用 が確定しているようですが、この2つの機能だけなら、別にBとCは不要なわけで。 BとCをユーザー毎に作らない方が、セキュリティ的には好ましいでしょう。 結局、その他こまごまとした一般的なシステムの中身次第で、BとCが本来的に必要なのかどうか決りますね。 無用なシステムアカウントなどはないほうが、セキュリティ的には好ましいです

pe_daichan
質問者

補足

nebelさん、こんにちは。ご回答ありがとうございます。 Linuxアカウントは、メールを「転送」ではなく「メールボックスに配信」にした場合に、Postfixに対して必須かな、と思いました。実際に必要かどうかは勉強不足です。すいません^^; DBアカウントは、ユーザー毎に、各テーブルに対する SELECT,INSERT,UPDATE,DELETE の権限を設定した方が、高いセキュリティを維持できると考えました。例えば、「その他こまごまとした一般的なシステム」として「ToDoリスト」を例に挙げてみます。 ToDoリスト(todo)テーブル(カラム構成は、通し番号(id),ユーザー名(username),内容(body))に対して、ユーザー毎にビューを定義(CREATE VIEW todo_pe_daichan (id, body) AS SELECT * FROM todo WHERE username = 'pe_daichan';)し、ビュー todo_pe_daichanに対しては、ユーザー pe_daichan しかアクセスできないようにする。 この場合、プログラマの意図通りのSQLしか発行されないのであれば、SELECT の WHERE句に、必ず username = '[ユーザー名]' が入っていれば、todoテーブルに対して操作を行う方式でも問題は発生しません。が、万一SQLインジェクション等で username による限定が外れてしまった場合(当然インジェクションを防げるよう留意してプログラミングを行いますが)、他人のToDoの内容が漏れる可能性が出てきます。 そこで、上記のようなビューをユーザー毎に定義し、各Aアカウントに対してCアカウントも発行し、todoに関しては自分用のビューにしかアクセスできないような仕様にしておけば上記の不安が多少なりとも改善するような気がします。 上記は例の一つですが、似たようなケースは多いと思います。そういう場合では、どうでしょう? また、「ToDoリストくらい漏れても大ごとじゃ無い」という考えもありますが^^;、例えばこれがToDoリストではなく、個人情報・機微情報だったりしたら、どうでしょう?

関連するQ&A

  • ユーザーアカウントで

    Windows XP FMV NOTE PC 私の使用しているパソコンではユーザーが3つに分けられています。 そのユーザーをA・B・Cとおきます。 ユーザーAはパソコン購入時からあるユーザーです。 B・Cはあとから追加したユーザーです。 A・B・C これら全てのアカウントの種類は「コンピュータの管理者」に設定されています。 ここからが質問です。 アカウントAでログインします。 アカウントAでスクリーンセイバーを設定します。 アカウントAのスクリーンセイバーが変更されます。 アカウントBでログインします。 アカウントBでスクリーンセイバーを設定します。 アカウントB・Cのスクリーンセイバーが変更されます。 アカウントCでログインします。 アカウントCでスクリーンセイバーを設定します。 アカウントB・Cのスクリーンセイバーが変更されます。 購入時からあるアカウントAは、アカウントB・Cのスクリーンセイバーを変更しても変わらないのに、 B・Cはそれぞれスクリーンセイバーを共有しているようです。(背景画像などは別です。) 他にも、BでソフトをDLした時、Cのデスクトップにもアイコンが作成されたりします。 このパソコンは3人で使っているため、これでは何かと不便です。 後から追加したアカウントを完全に別の物として扱うことは可能でしょうか? 稚拙な文章で理解しがたい所もあるかもしれませんが、どなたかご教授ください。

  • 制限付きアカウントに変更したら初期状態に

    あるユーザーをコンピュータの管理者から制限付きアカウントに変更したところ、そのユーザーの設定した内容が、ほとんど初期に戻ってしまいました。 その問題が発生した前に行ったことを説明します。 ・ユーザー(A)が最初あり、ユーザー(B)をコンピュータの管理者として作成 ・Aの内容をBにコピーするためにシステムのユーザープロファイルを実行 ・Bをコンピュータの管理者から制限付きアカウントに変更 また、Bを再びコンピュータの管理者に戻すと、何事もなかったように直ります。 Bを制限付きアカウントとして使用するにはどうすればいいでしょうか。 Windows XP Home Editionです。お願いします。

  • Liveメール 複数のアカウントをまとめて管理

    教えて下さい。 windowsXPでアウトルックエクスプレス6を使用しておりましたが、パソコンをwindows7へ買い替え、windowsLiveメールを使用しています。 データ、アドレス、アカウント全ての移行は終わりましたが、メールアカウントを3つ持っており、今までアウトルックエクスプレスでは、A(既定)アカウント、Bアカウント、Cアカウントと別のアドレスで受信しても一つの受信トレイにまとめて入ってきました。 ところが、Liveメールだと左側に一つ一つアカウントが表示されA(既定)ならA(既定)、BならB、CならCに受信されてしまいます。 アカウントA(既定)にBとCも受信できるような設定はないのでしょうか? 別個に振り分けられるよりまとめて管理をしたいのですが。。。。

  • ユーザーアカウントの消失

    Dell Dimension 4500C Windows XP Home Edition を使っています。 今まで使っていたユーザーアカウントが消えてしまいました。 ユーザーA、ユーザーB、Guestのアカウントがあったのですが、今ではユーザーA、Guestしかありません。 私は普段ユーザーBを使っています。以下、順を追って説明します。 1.マイミュージックを英語表記に変えようとレジストリを少しいじった。 (直接レジストリをいじったのはここだけなのですが…) 2.その後、ユーザーAにログインしたら初期化されてしまった。 3.システムの復元で数日前に戻す操作を行った。 4.systemファイルが壊れた。 5.起動ディスクを作ってsystemファイルを修復。 6.ユーザーAとGuestしかない。 7.Document and SettingにはユーザーBのフォルダがある。 8.ユーザーBで再度アカウントを作ったけど、別のアカウントとして作られてしまう。 元の状態に戻すにはどうしたらよいでしょうか?

  • 届いたメールの一部が受信できない

     さくらインターネットのメールを使用しています。  メールソフトはOutlookExpress6です。  AというメールアドレスとBというメールアドレスを使用しています。  通常の設定ではAに届いたメールをBに転送しています。その際に、ウェブメール上で 「メールボックスに残す」という設定にしています。  使い方としてはAに届いたメールはPCで受信する一方、Bというメールアドレスに転送して います。Bのメールアドレスに届いたメール(直接とAから転送の両方)は違うPCで受信して います。 ○Aの不具合について  AのアカウントはOutlookExpress6で受信ができなくなりました。  ウェブメールでアクセスしても、メールボックス上に保存すらされていません。  ただ、Bのメールアドレスへは転送されています。 ○Bの不具合について  Bのアカウントに直接送信されたメールはメールボックス内に入りますが、OutlookExpress6で ダウンロードされません(新着メールなしになる)。  ただし、Aのメールアドレスから転送されたものだけOutlookExpress6で受信できます。  AとBのアドレス以外は転送設定されていないせいか特に問題はなく使えています。また、 ケータイPC問わず様々なメールサーバーから送信しましたが、挙動に変化はありませんでした。  今まで通りに正常に受信できるようにするにはどうしたらいいでしょうか。教えてください。  よろしくお願いします。

  • 在庫管理システム

     製造業などで材料の部材をDB(パソコン)で管理している会社(工場)多いかと思います。 内部で作成したもの、外注したものいろいろあるかと思います。 さて、ある製品を製造する場合Aという材料が1個 Bが1個 Cが2個 必要な場合 10個(ロット)製造する場合 Aが10個 Bが10個 Cが20個必要になります。 当然(?)不良が発生することもあるかと思います。たとえばAを1つ「廃棄」した場合Aが11個 Bが10個 Cが20個使用したとDBに登録するかと思います。  で・・・、本来使用しない材料を誤って使用してしまうケースもあるかと思います。 さて、質問なんですが在庫管理システム(DB)はこのようなケースに対応するのが一般的なんでしょうか?(このようなケースを想定してシステムを構築するのが一般的なんでしょうか?)  

  • ユーザーアカウントが消えました

    新しく管理者ユーザーアカウントを作成したところ、もとの以前から使用していた管理者ユーザーアカウントが、ログイン画面から消えてしまいました。 コントロールパネルのシステムにあるユーザープロファイルを確認すると、データ自体は残っているようです。元の管理者ユーザーアカウントで、どのようにしてログインできるのでしょうか?

  • 配信不能の転送に関して

    こちらやMicrosoftで検索してみたのですが、同症状がなかく、どうしても解決できなかったので、投稿させて頂きました。 どなたかお解りになりましたら、ご返答願います。 また『機能的にそういうことはできない』ということを、ご存知のようであれば、MSのそういったサイトをご紹介頂けるとありがたいです。 メールソフトは、Outlook2002 を使用しています。 通信環境は会社のLAN環境です。 【情報】 「Outlook」-「ツール」-「自動仕訳ウィザード」にてメール全転送設定をしています。 アカウントAが受信したものを”全て”アカウントBへ転送しています。 アカウントBはアカウントAのメールの全ての権限を持っております。 AからBに転送されてきたメールは送信者がAとなっています。 【問題】 アカウントのBのメールソフト上で『差出人』ボックスに”アカウントA”と入力し、メッセージを送信します。 (BがAに変わって代理人送信します) この場合、宛先を間違えたりした場合、システム管理者より配信不能メッセージがAには届くのですが、 全転送にしているにも関わらず、Bにはこの配信不能メッセージだけ届きません。 因みに、Aに来た不在通知等はBにも届きます。 そこで、自動仕訳ウィザードにて、件名に配信不能と入っているものをBに全て転送にしても、転送されてきません。 これはどういった現象なのでしょうか? メールではなく、サーバーからの通知だから、Aが転送をかけないのでしょうか? このシステム状況をどなたかお解りになる方いらっしゃいましたら、お力を拝借させてください。 よろしくお願い致します。

  • Linux 複数ドメインのSendmailの設定について

    現在、バーチャルドメインにおいてのsendmailの設定で 非常に困っています。 どなたか教えていただけませんでしょうか(;_;) ------------------------------------------- 複数ドメインの場合 ドメイン違い同じアカウント名が発生します。 例えば *a*という会社のドメインと*b*という会社のドメインの管理 をしている場合に、*a*という会社にも*b*という会社にも userさんという人がいて 内部的にはユーザー管理を番号などでしているとしても 外部的には同じアカウントをドメイン違いで使用したいのです。 【例】 ユーザー:User1  ドメイン:*a*.co.jp ユーザー:User2  ドメイン:*b*.co.jp user@*a*.co.jp は user1のmailboxへ配信 user@*b*.co.jp は user2のmailboxへ配信 【現在設定内容】 Sendmail.defファイルの[usertable]にて 以下のように設定しております。 ((sendmail.def)) USERTABLE_MAPS='*a*.co.jp=hash:/etc/mail/mail.*a*.db \ *b*.co.jp=hash:/etc/mail/mail.*b*.db' ((dbの内容)) (1)mail.*a*.dbの内容 user:maildrop user1@*a*.co.jp (2)mail.*b*.dbの内容 user:maildrop user2@*b*.co.jp ※Sendmail.defはCfファイルに変換し、dbファイルも hashをかけて ・・・というような処理は必ず実行しているものとします。 OFFICIAL_NAMEには*a*.co.jp MY_ALIASには*b*.co.jp ALIAS_REWRITE=no ACCEPT_ADDRには*b*.co.jpと設定しています。 いろんな方のHP等をご拝見させていただいたのですが なんだか上手く行かなくって・・・ 上手く行かないというのは どちらのドメインでテストしても 結局Official_Nameに設定している*a*のuser1のmailboxに いっちゃうのです。 Procmail?の設定は全くしていません。 もしかして必要なのでしょうか。。。

  • SQLServer 2005のサービスアカウントについて

    構成上の理由からドメインに参加できないサーバにSQLServer2005をインストールすることになりました。 この場合、サービスアカウントに「ドメインユーザ」は使えないので「ビルトインサービスアカウント」の 「ローカルシステム」を使おうと思うのですが、これを選択した場合はローカルユーザににSQLServer用の アカウントが追加され、そのユーザにてSQLServerの接続を行うということなのでしょうか? また、その場合、そのユーザにはローカルのどのような権限を与えるのが一般的なのでしょうか? 色々調べてみたのですが、いまいち理解できなく困っています。 ご存知の方がいらっしゃいましたら、教えてください。