2019年8月20日火曜日

セキュリティー対策(7)

そもそもの基本の基本
クライアント側に表示されるHTMLで作成されるものは、
必要な値をサーバーに送信するために、入力しやすいように
設定された条件のようなものになっています。

たとえば、以下のように文字数や入力の制限するコードがあります。

<html>
<body>
  数値型なので、数値しか入力されない?<br />
  <input type="number" name="val_number" /><br />
  文字列を最大4文字まで入力可能?<br />
  <input type="text" name="val_text" maxlength="4" /><br />
  半角英数字しか入力できない?<br />
  <input type="text" name="val_disabled" style="ime-mode: disabled" /><br />
  この入力欄の値は読み込み専用?<br />
  <input type="text" name="val_readonly" readonly="readonly" /><br />
  この入力欄の値は変更できない?<br />
  <input type="text" name="val_disabled" disabled="disabled" /><br />
  非表示の属性(ユーザーからは見えない値なので、変更されない?)<br />
  <input type="hidden" name="val_hidden" /><br />
</body>
</html>
ですが、どれも直接GETやPOSTされた時など、このコードの制限を
一切受けることなく自由な値がサーバー側へ送られてしまします。
ですので、その設定された条件で補正された、正しいデータが
必ず来る保障はないものなのです。

HTML側では、入力の補助。

サーバー側では、クライアントから送られてきた値が正常なものか
別途確認するコードが必要ですね。

https://www.filetalk.info/index.html

0 件のコメント:

コメントを投稿