Webアプリケーションの例外ログに、ユーザが何らかの形で<input type="text" ...>
がフィールドのmaxlength
属性で指定されている文字より多く入力されたWebフォームを提出したことが示されているようです。これの唯一の結果は、ログに対するSQL例外を生成し、ユーザに一般的なエラーページを提示することであった(すなわち、ユーザはSQLエラーを認識しなかった)ので、損害は発生しなかった。しかし、私はこれがどのように起こったのか不思議です。HTMLテキストフィールドでmaxlengthをバイパスする正当な方法はありますか?
私は、(カスタム・クライアントを介して提出するなどFirebugは、とHTMLをいじる)、これを回避する方法が「ハッキング」されているが、これは(特定のブラウザを使用して、おそらく)起こることができる任意の正当なの方法があります知っています私はコード変更を通じて対応することができますか?
ハッキングによって生成された場合、変更は必要ありません.SQLエラーはシステムを害から保護します。しかし、ユーザーが合法的にこれを何とかヒットした場合は、修正したいと思います。
問題の場合...そのリクエストのユーザーエージェントはSafari/Mac (Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-us) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
でした)Windows Safariで問題を再現できず、Macにアクセスできない。
ユーザーにはデータベースエラーは表示されません...一般的なエラーページのみが表示されます。データベースエラーはログにのみ書き込まれます。 – JoelFan
アダムが正しいです。セキュリティルールの1つは「決して信用できません」です。フィールドのサイズが限られていて、PHPのサイズが制限されていることを確認したら、このエラーがデータベースによって防止されるため、問題ではないと判断してはいけませんすべてのフィールドで、誰かがいつかこのフィールドを別のタイプの攻撃に使用すると、サイズを制限することで、自分の仕事を本当に難しくします。そして、ある日データベースのサイズエラー処理でバグが発見されても、影響を受けることはありません。 – regilero