0

プログラムに大きなセキュリティ上の問題があり、URL の一部を非表示にする必要があります。ネットで解決策を探しましたが、運がありませんでした。私のプログラムには、管理者アカウントとユーザー アカウントがあります。このプログラムは、単純に作業員用のデータベースです。管理者はすべての線量を見ることができますが、他のユーザーは自分の作業グループにある線量しか見ることができません。したがって、私の問題は、ユーザーがドキュメントを見に来たときに、情報にアクセスするための URL が次のようになることです。 、これは良くありません。例:

"viewdosje.php?album=109"

URL の番号を変更することで、彼は他の用量を見ることができます。URL のその部分を非表示にするのは素晴らしいことですが、それとも間違っていますか? 何らかのアイデアで私を助けてください。どこから始めればよいかわかりません。

4

3 に答える 3

7

URL を非表示にするのではなく、アプリケーションでリソースへのアクセスを検証する必要があります。ID を受け取ったら、コンテンツを表示する前に、DB クエリを実行して、現在ログインしているユーザーがそのリソースにアクセスできるかどうかを確認します。

于 2012-05-03T12:13:10.400 に答える
3

「非表示」のURLに依存することは、ひどい解決策です。URLにアクセスできる人は誰でも、あなたの個人データにアクセスできます。URLには、さまざまな方法でアクセスできます。たとえば、Webトラフィックのスニッフィング(安全でないWIFIポイントなど)、JavaScript、推測、ブラウザ履歴へのアクセス、トロイの木馬、キーボードロガーなどのあらゆる種類のさらに恐ろしいルートを経由します。

これらの従業員記録のデータが機密/非公開である場合、ほとんどの国では、データを適切に保護することが法的に義務付けられています。法的要件がない場合でも、あなたの会社はおそらく全員の給与をパブリックドメインにしないことを望んでいます。

正しい解決策は、ログインメカニズムを設計し、ユーザー権限を割り当てることです。ユーザーがアクセス権のないページにアクセスしようとすると、適切なエラーメッセージが送信されます。PHPにはこれに対する多くの解決策があります-PEARには優れた実装があります。

于 2012-05-03T12:17:26.173 に答える
-3

私は PHP の実際の経験がないので、そこを助けることはできませんが、JSP や Rails でこの問題に取り組んでいる場合は、次のようにするかもしれません:

おそらく、ユーザーを特定できる情報を Cookie に保存し、認証されたら、この情報をユーザー データベースと比較しますか? 許可されていないユーザーが手動で URL を編集した場合に、ページがそのユーザーに提供されないようにします。

于 2012-05-03T12:14:05.630 に答える