0

私は、手の届かない2つのApache HTTPDサーバーを介して、2つの異なるアクセスポイントを持つWebアプリケーション(Tomcatサーバー上に存在)の保守を担当しています。

2つのアクセスポイントは、サードパーティのSSOシステム、またはログインとパスワードの入力を求める古き良き認証ページのいずれかを介してユーザーにログインすることを目的としています。

秘訣は、このSSOにより、アップロードまたはダウンロードできるファイルのサイズが制限されることです。SSOユーザーはそれより重いものを取得して送信する必要があるため、これに対する回避策が必要です。おそらく、他のサーバーを介して正しいリソースの場所を指すリンクを提供するだけです。

ここで私が懸念しているのは、誰かが巧妙に推測されたアドレスを入力して、想定外のドキュメントを取得した場合のセキュリティです。担当者は、ユーザーがドキュメントを取得する権限を持っていることを確認するためにSessionManagerについて聞きたくありませんが、JSESSSION_IDを使用してIDを確認するだけでよいと提案しました...

私はこれをどのように実装するかわからず、これが非常に恐ろしい方法で裏目に出るだろうという深刻な直感を持っています。

同様の問題に対処しなければならなかった人は、いくつかの落とし穴を指摘し、このSSOを安全にバイパスする方法に関するいくつかの役立つヒントを共有できますか?

4

2 に答える 2

1

One possible way to implement this is to protect the resources on the non-restricted site with a one-time password with a very short life time. Example:

  • User clicks on a link to open a document on the SSO protected site. The link should not provide the document directly.
  • The Tomcat server generates a one time password and redirects (using http code 303) the user to the un-restricted site with this password as an http parameter.
  • 3. When the browser connects to the un-restricted site, check that the password is correct and provide the document. Delete the password so that it cannot be used again. The password should only be valid for say 30 seconds. You may also record the user's ip-address and validate that.

You should not use the jsession id for this. It is not a good practise to expose the jsession id in a parameter on the address bar or in an html page.

However, you say that the other access point is protected by username and password. If so, will not the user have to log in here anyway? And if so, does not that login protect the resources?

于 2012-09-16T20:29:39.257 に答える
-1

正しいリソースを指すリンクを提供する場合は、セキュリティを考慮する必要があります。

https://www.owasp.org/index.php/Top_10_2010-A2

最も重要なことはXSSとCSRFであり、ソリューションは上記のWebサイトで提供されています。

Session Hijacking can be another security threat if we provide a direct link which can directly access the resources.

于 2012-09-14T09:56:13.223 に答える