2

私は (私が構築を手伝ったわけではありませんが) レガシー システムを強化しており、私が気づいたいくつかのことが正当なセキュリティ問題であるかどうかを他の人から知りたいと思っています。

まず、アプリケーションはログインによって保護されます。ただし、ユーザーがログインすると、アプリケーション全体に 11 ページがあり、隠しフィールドにファイル名の値とダウンロードするパスが格納されます。

Javascript を使用してフォームが自動的に送信され、ユーザーはファイルをダウンロードして自分のコンピューターに保存します。この値が変更される可能性があり、ユーザーが無意識のうちに悪意のあるファイルをダウンロードする可能性があると考えています。

また、フォームが保存されたときにユーザーが前のページに戻ることができるように、参照ページが非表示フィールドに保存されているページが多数あります。これらが正当な問題である場合、どのようにそうですか? 可能であれば、どのように攻撃されますか? リスクまたは潜在的な影響のレベルは? 私が尋ねる理由は、もしそうなら、アプリケーションを修正する必要があるというケースを提示できるようにするためです. 「これはベスト プラクティスではありません」と言うだけでは十分な理由にはなりません。

ご意見ありがとうございます!

4

3 に答える 3

2

安全でない可能性が非常に高いです。非表示のフォーム フィールドは、実装上の優れた機能です。

具体的には、フォーム フィールドの値が元の HTML でレンダリングされた値と同じ値でサーバーに返されることに依存することはできません。

サーバーが入力、チェックサム、ハッシュ、暗号化などのサニタイズなどの対策を実装している場合、使用はいくらか安全になる可能性があります。たとえば、ASP.NET は ViewState を使用してこれを行います。

それは言った...

それがどれほど安全でないかを見たいですか?Chrome または Firefox 開発者ツールを使用して、非表示フィールドの入力タイプ属性の 1 つを「hidden」から「text」に変更し、テキスト フィールドが表示されるのを確認します (ここで変更して、好きな値を送信できます)。

また、彼の回答にある潜在的なリスク分析に関する Matt のポイントを読むことを強くお勧めします。

于 2012-02-21T23:32:05.793 に答える
0

クリス・シェインが言ったことに加えて:

リスクまたは潜在的な影響のレベルは? サーバー側のスクリプトによって行われる仮定によっては、その影響はかなり深刻になる可能性があります。隠しフィールドにたとえばuser_idorが含まusernameれていて、この情報が正当であると想定されていた場合、Chris Shain が説明したように、フォーム フィールドを変更するだけで、誰でも他の人に代わってアクションを実行できます。

于 2012-02-21T23:35:09.870 に答える
0

非表示のフィールドは単なる GUI の問題です。画面には表示されませんが、まだ表示されています。これにより、他の(目に見える)フィールドと同じように脆弱になります。そのため、それらは「ベスト プラクティス」とは見なされません。

于 2012-02-21T23:32:50.730 に答える