私はFirebugのようなツールをかなり日常的に使用しており、ユーザー入力によるDOM操作が日常的であるSPAスタイルの動的フォームを作成することがよくあります。ユーザーがFirebugや任意の種類のjavascriptCLIなどのツールを使用して選択ボックスにオプションを挿入することに対する安全策はありますか?
簡単な例として、この選択ボックスを検討して、結婚しているか未婚かを選択します(実際の選択ボックスには、さらに多くのオプションがあり、XMLファイルからAJAXを介して入力されます。これは後で重要になります)。
<select name="mstatus" id="mstatus">
<option value="" selected>Specify marital status</option>
<option value="Married">Married</option>
<option value="Single">Single</option>
</select>
現在、私はこのように別のオプションを簡単に挿入することができます(私はページにMootoolsを持っています):
$('mstatus').innerHTML+="<option value='Rebel'>I won't play by the rules</option>"
もちろん、この例では、選択したオプションがあまり悲しむことなく有効であるかどうかをサーバー側で確認できます。ただし、一般的に、ユーザーの送信を各選択の元のXMLソースと比較して、その有効性を確認する必要があります。
戻り値の整合性を確保する別の方法はありますか?これは、ユーザーの選択を額面どおりに行うのに十分な問題ではありませんか?ここでのベストプラクティスは、有効な値の範囲内から選択されていることを確認するまで、すべての選択された入力をテキスト入力として扱うだけですか?
注:入力されたすべての値は徹底的に精査され、データベースにポップされるまではかなり不活性であるため、コードインジェクションの危険はありません。