3

アプリをできる限り保護しようとしていたところ、考えさせられました。私は常にユーザーの入力を検証し、常に入力をスクラブします。たとえば、「誕生日」フィールドがある場合は、データベースに入れる前に有効な日付であることを確認します。しかし、データベースには「passwordresettoken」のようなフィールドもあり、ユーザーが要求した場合にコードでこのフィールドを生成します。

現在、私の通常のユーザー プロファイル ページには、明らかに「passwordresettoken」というフィールドがありません。そのため、渡されるフォームに存在してはならないため、検証もスクラブも行いません。実際、これはユーザーが入力するものではないため、決して渡されるべきではありません。

私の質問は、入力フィールドを偽装することは可能ですか? 彼らは私のページの HTML を編集して passwordresettoken フィールドを含め、フォームが渡されたときになんらかの損害を与えることができますか?

4

1 に答える 1

5

そのとおり。HTML を見る必要さえありません。curl を使用して直接送信できます。

http://curl.haxx.se/docs/httpscripting.html

このhtml

    <form method="POST" action="junk.cgi">
      <input type=text name="birthyear">
      <input type=submit name=press value=" OK ">
    </form>

このcurlリクエストと同等です

curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/junk.cgi
于 2013-04-15T22:42:40.273 に答える