2010-12-13 21 views
0

私はPerlで書かれた商用の学生管理システムを複製しようとしています。私はPerlでの経験がないので、PHPを使いたいです。
私は今、ログインシステムをセットアップしようとしています。これは、PHPSESSIDで行う必要がありますか? PHPでは、GET、POST、COOKIEでセッションIDを送信できました。PerlはPHPとセッションをどのように扱いますか?

PerlウェブサイトはURL(GET)にパラメータを追加せず、自分のコンピュータ(COOKIE)にクッキーを保存しません。隠されたフィールドを含むフォームもありません(PHPのPOSTでしょうか?)

誰かがログインしたユーザーをどのように覚えていますか?

+2

代わりに、HTTP認証を代わりに使用します。クライアントが認証ヘッダーを送信しているかどうかを確認してください。 – MkV

答えて

5

PerlはWebアプリケーション用に設計されたものではないため、Webアプリケーションを構築するためのツールキットベースのアプローチがPHPに比べてはるかに多くなっています。したがって、Webアプリケーションセッション管理を組み込む方法はありません。むしろ、多くの異なる方法でセッション管理を実装する多くのモジュールがCPAN上にあります。

問題の学生管理システムを特定し、URLを提供する場合は、外部から見て、それが何をしているのかを特定できるかもしれませんが、実際には、元のバージョンとクローンの間でシングルサインオンを実装しない限り、既存のアプリケーションと同じセッション管理システムを使用します[1]。その背後にある実装の詳細ではなく、ユーザーに表示されるインターフェイスと機能のクローン作成に集中します。

[1] ...バックエンドでセッションデータベースにアクセスする予定がない限り、どちらも無駄になります。データを共有していない場合、どちらのセッションIDも認識しないためです。

+0

実際、私はPHPで「最高の」安全なソリューションを探していて、オリジナルのソリューションをコピーしようとしました。しかし、あなたはおそらく正しいです - 私は、ユーザーインターフェイスへのコピーを制限し、自分自身を構築する必要があります。 –

2

あなたがリストした3つの方法よりもセッション情報を保存/送信するための非標準的な方法があります(はSMSのいずれかが使用されていますが、)。その中:DOM

  • それとも、単に内のJavaScriptのデータとしてcookiedデータを保存するからそれを(HTML内など)DOMの一部として、Cookieデータを送信すると、ページ上のJavaScriptのアクセス権を持つ

    • 最初の場所。

    • AJAX呼び出し。例えば。セッション可能なロジックはすべてAJAX URLでは処理され、メインURLでは処理されません。はい、私はそれが完全にねじれていることを知っています。しかし、実行可能です。

    • メインのCookieデータベースに保存しないでください(標準のCookie表示方法では見つからないため)。それを行うの方法の詳細については、持続的に10の冗長ストレージオプションまで利用することにより、クッキーの情報を格納する非常にクールな方法については「evercookie」をグーグルください - 一つの良いイントロがhttp://blog.depthsecurity.com/2010/09/super-persistent-cookies-evercookie.html

    私は完全に同意する、と述べているすべてでありますDaveの答えでは、Webアプリケーションでおそらくperl固有で可能性のある奇妙な実装を複製するのではなく、PHPのベストプラクティスのメカニズムを使用して機能を実装するだけです。

  • 関連する問題