2012-03-25 8 views
0

Web Application Hacker's Handbookを読んでいるうちに、自分のWebサイト(ASP.NET MVC3)で小さなテストを試みました。応答でデータ改ざんを防止する

私は2つのフィールドを含むモデルを持っています。最初のフィールドはが無効になっていますドロップダウンリストです。 テキストフィールドが有効です。 最初のフィールドはView.chtmlから無効にされ、 new {disabled="disabled"}がパラメタとして追加されました。

ここに私に何が起こったのですか、私はBurp Suiteツールをプロキシとして実行し、応答をトラップしました。 レスポンスで、HTMLからdisabled="disabled"属性を削除してから、レスポンスをブラウザに転送しました。確かに、ページには2つの有効なフィールドがあります。

質問は、などのツールを使用して改ざんフィールドを防ぐ方法です。Burp Suite

答えて

1

できません。その点については、コントローラで受信したポストバックがブラウザでの表示結果であることを確認できません。何かスクリプトを使ってほしいものを投稿するだけで簡単ですし、ハッカーが頻繁に行うことです。

最終行はです。決して入力を信頼せず、常にそれが許容されることを検証する。

+0

この特定の問題については、コントローラのGETとPOSTのモデルを比較するとどうでしょうか?私はreadonly attrbute(s)を比較することを意味しますか? – Anwar

+0

主キー以外の読み取り専用データを読み取る必要があるのはなぜですか?結局のところ、最初にクライアントに送信します。ハッカーに役立つ一般的なことは、[AntiForgeryToken](http://msdn.microsoft.com/en-us/library/dd492767.aspx) – Maurice

+1

読み取り専用データを無視する簡単な方法は、[バインド]属性を使用することです。フィールドを除く。 – Maurice

関連する問題