• ベストアンサー

多重ログイン防止するための開発について

ASPの社内システムで、多重ログインを防止をするのですが、社内環境によってDHCP(ランダムのIP)を採用している場合があり、DBなどでIPを管理するマスタでは対応しきれません。 この手の開発の実例は当然あるかと思われますが、 上記のようなシステム構築においてどのようなシステム設計が妥当でしょうか。 ご教授をお願いいたします。 ルール) ・ログイン状況をDBで持たせるのは可能 ・Sessionでのログイン状況を持たせるのは可能 ・cookieでのログイン状況を持たせるのは不可 ・ログイン状況の有効が切れる条件としては以下の3点  1:ログアウトをした場合  2:放置された状態で30分経過された場合  3:ブラウザを閉じられた場合 以上です。 大変お手数をおかけしますが、宜しくお願いします。 なお、情報不足の場合は随時補足いたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

DHCPに通常はリリース期間があるので、期間中はパソコンを再起動しても同じIPアドレスが振られます。 「DBなどでIPを管理するマスタ」でOKと思います。 (ユーザーID, IPアドレス) の組み合わせをログイン時にDBに登録。 ただし、既にユーザーIDに対応するIPアドレスがDBにある場合はエラーとする。 ログアウト時またはセッションタイムアウトでDBから削除。 前提条件 DHCPのリリース期間が設定されている。 プロ串サーバを通さない。 >ブラウザを閉じられた場合 技術系のMLや掲示板でよく話題になりますが、ブラウザが閉じられたのをサーバに通知する方法はありません。 複数のパソコンを使うユーザーには、ログオフを徹底されるしかないですね。

soushi_ni
質問者

お礼

>ブラウザを閉じられた場合 やはり、このような場合は特別に「管理者メニュー」などで救済処置をしないといけないのでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

> やはり、このような場合は特別に「管理者メニュー」などで救済処置をしないといけないのでしょうか。 30分過ぎれば自動的に復旧しますが、緊急用にそういう機能を用意しておくのがいいでしょう。

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

IPで管理しようとしていたということは、 おおむねコンピュータでログインを区別するということであるとすると MACで管理すればよいでにはないでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 多重ログインを禁止にしたいのですが…。

    多重ログインを禁止にしたいのですが…。 C♯、ASP.NET、DBはPostgresSQLという環境です。 WEBを作っているのですが、ログイン周りで悩んでいるので教えてください。 要件としては、多重ログインは許可しない、同一IDでログインに成功した場合、 先に入ったほうは強制ログアウトという話です。 たとえば、ユーザAがログインした後、別の端末からまたユーザAでログインすると、 最初にログインしたほうはログアウト状態になります。 ログイン情報を管理するテーブルを用意して、ログイン成功時に、そのユーザが ログイン中のステータスだったら…とか考えてみたんですが、強制ログアウトへ もって行く仕組みが思いつかず…。 何か手がかりや、参考サイト、またはサンプルなどアドバイスいただけないでしょうか。 宜しくお願いします。

  • ログインできない

    こんばんは。いつもお世話になっております。 些か抽象的な質問になってしまいますが、以下のような状況に困っております。 1.ページを移動したりすると、時に勝手に’ログアウトしてしまう事がある’。 2.ログイン状態で、他のサイト(違うサーバ)からリンクを辿って訪問すると、’ログアウトしてしまう事がある’。 以上のような感じなのですが、勝手にログアウトした時は、なかなかログイン出来ず、またログイン出来ても、ページ移動の際、直ぐにログアウトしてしまうといった状況です。 尚、ログインする際は、DB(MySQL)に問い合わせ、ログイン状態を保つため、登録データのidなどを、$_SESSION["id"]=$id; としてセッションに代入しており、ページ移動の際(ログインのみ閲覧可能なときは)、auth.php(ログイン画面、DB問い合わせページ)に移動するよう、 <?php session_start(); require_once("./auth.php"); としたり、 if($_SESSION["id"]==""){ header("Location: http://○○○.com/"); } のようにしています。 些か抽象的で、かつお恥ずかしい質問かと重々承知しているつもりですが、レンタルサーバを借り、実際にアップロードしたところ、開発環境では問題なかった状況で、非常に困っております。 DBの設計が可笑しいのか?PHPのソースが可笑しいのか?色々考えられる点はあるかと思いますが、何処を見直せばいいのか分からず、考えられる点などご意見を伺えれば幸いに思っております。 お忙しい中恐縮ですが、ご指導のほど宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • ASP セッション無効時でのDB操作方法

    過去の投稿で多重ログイン制御の延長で、ログイン制御をDBにて管理することになりました。 問題はログアウトせずにブラウザを落とされた場合ですが、とりあえずはセッションの有効時間が経過した場合にDBから削除する仕組みにしようかと思っています。 現在その仕組みをサイトなどで調査していますが、それにふさわしいサイトがみつからず、悩んでいます。 セッション落ちのイベントなどはどのようにして取得するのでしょうか。

  • gooフリーメールにログインできません

    gooフリーメールにログインしようとすると、(ActiveX、JavaScript、cookie、をonにしていても) 無効なセッションです、と出て自動ログアウトしてしまいます。なぜでしょうか?

  • 二重ログイン管理について

    お世話になります。 現在、Linux Apache Mysql Phpのシステムで会員制の動画閲覧システムを開発中です。 接続時間による従量制の課金システムのため、同じIDでの使いまわしを対策する必要があり、二重ログインを禁止するようにしたいのです。 単純にDBでログインフラグを設定すればよいと思ったのですが、その場合、ログアウトボタンでログアウトしてもらわないとログイン状態が保持されてしまうため、クライアントが不意のフリーズなどで再起動となった場合再ログインが出来ないということになってしまいます。 何か、Webのシステムで完全に二重ログインを防止し、ログアウトボタン以外でのログアウトした場合にもしっかり「ログアウト」とみなす対応のできる方法はないでしょうか? 教えてください、お願いします。

    • 締切済み
    • PHP
  • Cookieが漏洩した場合の対処法は?

    万が一、cookieが漏洩してしまった場合はどのような対策をする必要がありますか? 特にGmailの場合がかなり心配です。 Gmailでは一度ログアウトしてまたログインすると別のセッションになるようですが、これはログアウトする前のcookieではログインできなくなるという事ですか?

  • Cookie?ログインしたままにするには?

    こんにちは。インターネットは10年以上使っていますが、基本的な使い方しかしていないレベルの者です。windows7です。教えてください。 先日、パソコンを修理に出して、リカバリ&最初の設定までやっていただいた状態で戻ってきました。 私はいつも楽天ツールバーで検索しているのですが、以前はインターネットを終了して、再度立ち上げてもログインしたままだったのですが、現在はインターネットを終了するごとにログアウトされてしまいます。ほかの、ログインが必要なサイトも、今まではログアウトするまでログインした状態だったのですが、同様にネットを終了するとログアウトになってしまいます(tenki.jpとか)。 「自動Cookie処理を上書きする」、「常にセッションCookieを許可する」はオンになっています。 どうぞよろしくお願いいたします。

  • ログインしたら他からログインできないようにしたい

    PHP+MySQLで会員サイトを作っています。 1. 誰か一人がログインしていたら、そのログイン会員と同じIDとパスワードでログインしようとするとログインできないようにするか、元のログインしていた人が強制的にログアウトするようにしたい。 2. 一人のユーザーが複数アカウントを作って会員サイトを使いたい放題にするのを阻止したい。 そのため、「PC1台からは必ず1ユーザーのみしかログインできないようにしたい」です。 (複数PCを使われたら仕方ないかもしれません・・・) よく銀行サイトのようにログイン中に他のブラウザや端末からログインしようとすると「すでにログイン中です。ログインし直しますか?」のようになりますが、1.はこんな感じを考えています。 仕組みとしてはどのようにするのが良いのでしょうか? 1. ログイン時にセッションIDを作り、データベースにそのセッションIDとIPアドレスを記憶しておいて、Web上で何か操作するたびにブラウザ側のセッションIDとデータベース側のセッションIDを比べて同じなら操作を実行し、違うなら操作できないようにする。 2. ログイン中に別のブラウザからログインしようとすると、データベース側に保存されているセッションIDが違うのでログインできないようにする。 3. 同じIPアドレスですでにログイン中の場合、同じPCからは他のアカウントでログインできないようにする。 こんな感じでしょうか? 何か問題点やそもそもこの仕組は間違っていて常套手段があるなどありましたらお教えください。 なんとなく、IPアドレスのチェックはWiMAXなどは時間とともに変わったりするのであまり良くはないかもしれません。 どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • ログインて?

    教えて下さい ヤフオクでログインした時にパスワードを入力し Yahoo! JAPAN IDとパスワードを記憶にチェックを入れると電源を落としてもログアウトしない限り常にログイン状態になっていると思うのですが、たまにログアウトされていて又パスワードをいれてログインしないといけない状況になっています。これって誰かが外部からさわったりしているのでしょうか? 他のサイトも同じで、GOOのログインとかも知らないうちにログアウトされているんです。(ログインを保持にチェックをいれても) ちなみにパソコンは誰もさわっていません。 履歴を消したりもしていません cookieの削除やファイルの削除もしていません リンクした所は青からむらさきに表示の色は変わっているんですよ。 なぜなんでしょう??

  • 次回から自動でログインとセッション

    次回から自動でログインとセッション 次回から自動でログイン機能が付いたサイトがありますが、ログアウトした場合、 セッションクッキーが削除されるので意味が無いと思うんですが 何のために在るのか教えてください。

    • ベストアンサー
    • PHP