2

私はウェブ開発の初心者です。私はかなりの量のコマンド ラインといくつかの gui python 開発を行い、Drupal と Wordpress と静的 html/css を使用して Web 開発を行いましたが、セッションの管理やユーザーのログインについて心配する必要はありませんでした。それが必要ないくつかのケースでは、私は Drupal/Wordpress を使用しました。

Flask/Web 開発の学習に取り組んでおり、開始したプロジェクトがあります。これは、別のサイトの XML API (REST API と呼ばれていると思います) を呼び出す単純な 3 ページのアプリです。私が呼び出すサイトは Adob​​e の Connect で、e ラーニング コースと学生のデータが多数含まれています。「はじめに」API ドキュメントへのリンクは次のとおりです

私のアプリは次のことを実行できる必要があります: 1. 学生が自分のユーザー ID/パスワードを私の Flask アプリのフォームに入力すると、Connect API を呼び出してそこにログインさせたい (したがって、シングル・サインオン)。2. 次に、ユーザーが登録しているコースを一覧表示するページにリダイレクトされるようにします (このデータは Connect API から取得されます)。

私の質問/懸念は、セッションとユーザーのセキュリティに関するものです。Connect API のドキュメントでは、URL 経由で電話をかけることを推奨しています。それは私には少し奇妙に思えますが、おそらく完全に安全ですか? ユーザー資格情報を「平文で」渡していないことを確認したいだけだと思います。私のサイトが https であり、呼び出しが https URL (Connect の API である) への呼び出しであることを確認することは、これを行う正しい方法ですか?

Connect の Web サービスと正常に統合された Python のコマンド ライン スクリプトが既にあります。ユーザーのログイン、ログアウト、呼び出しを行ってデータを返すことができます。次のステップは、これを Web アプリとして再作成することです。

アドバイス/ヒントは大歓迎です。

4

1 に答える 1

1

URL でのログイン資格情報の送信は、安全な HTTP (つまり ) を使用している場合にのみ安全ですhttps://...。リンクした Adob​​e Connect のドキュメントでは、これについてメモに記載されていますが、それらが示す例の多くは plain を使用していますhttp://...。非常に誤解を招く。

ログインすると、セッションを受信します。これは、今後の要求で資格情報を送信する代わりに送信する必要があります。セッション ID を使用するとリスクは低くなりますが、すべての要求を安全な HTTP 経由で送信することにより、セッション ID も保護することをお勧めします。

次に、解決すべき 2 つ目の問題があります。ユーザー資格情報は、Adobe Connect に送信する前に、ユーザーのコンピューターから独自のサーバーに移動する必要があります。サーバーもセキュア HTTP 上にある必要があります。

最後に、Adobe Connect がすべてのリクエストで渡されたセッション ID を「記憶」するのと同じように、ユーザーがページをリクエストするたびにユーザーを記憶し、Adobe が何であるかを知るために、ユーザーごとにセッションを用意する必要があります。送信する必要があるリクエストに使用するセッション。

独自のセッション ID の場合は、Adobe Connection セッション ID を再利用できます。それを Cookie でユーザーに送信するだけで、ユーザーがページをリクエストするたびに返されます。より堅牢なソリューションでは、Adobe のものとは異なる独自のセッション ID を生成し、ユーザー データベース テーブルでセッションを Adob​​e セッションに関連付ける必要があります。

認証用のユーザー セッションの管理を行う Flask-Login と呼ばれる非常に便利な拡張機能があります。独自のユーザー セッションを実装する場合は、時間を節約できます。

幸運を。

于 2013-11-13T19:03:14.447 に答える