2016-09-09 10 views
0

最初にClassic ASP/VBScriptで書かれた古いWebサイトを更新/保守しようとしていて、その後PHPページが追加されました。 PHPがログインを処理するように設定したいと思いますが、ログインした状態をPHPとASP/VBScriptで共有することができます。ページと言語はかなり混ざり合っていることに注意してください。サイトに時間を費やしている人は、特定の順序ではなく、各言語のいくつかの異なるページに出くわすかもしれません。PHPとClassic VBScriptの間のログインを共有します

(結局、私はそれが完全にPHPで書き換えることを期待し、私は一度、この象一口を食べなければならない;セキュリティを改善しようと、今の私はシンプルだ)

のは、私が」と仮定しましょうphpPassのようなものを使用してPHPにログインし、ユーザを検証しました。 ASP/VBScriptのページにログインしたことをどのように伝えたらいいですか?どうやってこれを安全に行うのが最善でしょうか?

(そして、任意の助けをありがとう!)

答えて

0

私がこの問題のために見つけた最良の答えは次のとおりです。クラシックASPとASP.netの間でログインを共有する具体的な、しかし、方法論はまったく同じです:

あなたはおそらく既に知っているように、従来のASPとasp.netは 同じセッション状態を共有することはできませんので、あなたは何一方のサーバから他方のサーバにログを記録するメカニズムが必要です。

私が行うことは:誰かがログインしたときに、 そのユーザーのデータベースに保存する一意のGUIDを作成することです。あるサイトから別のサイトに にジャンプすると、そのGUIDがクエリ文字列に渡されます。 を別のサイトに自動ログオンしようとすると、そのGUIDを参照して、誰にも添付されているのが かどうかを確認します。そうであれば、ログインしてください。

このようにして、ユーザーが推測できるもの、または を復号化することはできません。

さらに、タイムスタンプをデータベースに追加することも賢明です。 GUIDは1〜2秒間有効でなければなりません。 PHPの終わりにログインし、ASPにひっくり返してGUIDを確認してください。

完全には安全ではありませんが、私が見つけ出すほど安全であるようです。

ソース:https://stackoverflow.com/a/921575/339440

編集、追加する:コメントごとに、また、データベースへのユーザーのIPアドレスを記録し、ASP側でそれを比較します。テレポートは許可されていません!

+1

私はあなたの解決策に1つだけ追加します。人がログインしているとき - 私はまた、クライアントのIPアドレスを記録します。その後、GUIDを渡して他のサイトで読むと、クライアントのIPアドレス(同じにする必要があります)と共にデータベースでチェックします。 –

+0

素晴らしいアイデア。ありがとう –

1

彼らは違ったそれらを使用/作成するようあなたはクラシックASP/VBScriptとPHP間でセッションを共有することはできません。私のソリューションは、安全ではありませんが、動作します:

  1. (PHPを言う)の言語の1を経由してユーザーをログインURLに最初のセッション変数をパスし、ASPは、クエリ文字列を見てもらうとそこにASP用の別のセッションを作成します。

それはそれに対処します...安全ではありませんが!

+0

ええ、私はそのタイプのものを見てきました。あなたは安全でないことが正しいです。私はまた、何らかのハッシュをデータベースに渡し、VBScript側から同じハッシュを探すことについての提案を見てきました。あなたがURLを介してハッシュ自体を渡しているとしても、それを最善にする方法がわからない。または...誰かがそれを見ても問題ではないというハッシュの全体的なポイントですか? –

関連する問題