0

次のページに表示/送信するための読み取り専用フィールドのあるフォームがあります。

ただし、Chromeで開発者ツールを使用していることに気付きました。要素にIDを追加し、JavaScriptコンソールを使用してその要素を選択し、その値を変更することができました。私はフォームを提出しました、そしてあなたは何を知っていますか-次のページはそれが元の値であるかのようにそれに基づいて行動しました。

さて、私が構築しているサイトを使用している人々に問題はないはずですが、それは私には大きなセキュリティ上の欠陥のように思えます。読み取り専用のポイントは一定のままではありませんか?経験豊富なユーザーがそれを変更する場合、それは大きな問題を引き起こしませんか?実際、Chromeで属性を追加および変更できるとは思いませんでした。

以下にご意見を投稿して、解決策があるかどうかをお知らせください(「無効」テキストフィールドですが、無効プロパティを設定してもデータは次のページに送信されません)。

4

1 に答える 1

2

Web フォームからの入力は絶対に信用しないでください。

ユーザーは、同じように簡単に、readonly属性を削除して値を編集できます。readonly属性は、フォームに入力するときにユーザーを支援するためのものにすぎないため、サーバーが実際に変更を許可しない場合、値が変更されることを期待して値を編集することはありません。そのため、最初にサーバーで動作をコーディングすることを常に忘れないでください。HTML フォームは、ユーザーがフォームに簡単に入力できるようにするのに役立ちます (関連するエラー メッセージを取得するためにフォームを何度も送信する必要はありません)。

これを克服するために、何かがreadonlyあり、編集したくない場合は、データベースに値を保存できます。また、ユーザーが提供する値は常にチェック (およびサニタイズ) する必要があります。これは、JavaScript、HTML、または CSS がいくらあっても、自分が何をしているのかを知っている人が新しい値を追加したり、既存の値を変更/削除したりすることを妨げるものではないためです。

于 2012-04-26T13:54:27.293 に答える