今日、私は自分のWebアプリケーションにセキュリティホールを見つけました(SOで見つけることができなかったので、これが他の場所で言及されている場合はご容赦ください)。このコードを考えてみましょう:
<html>
<head>
<script>
intv = setTimeout(function(){test()} , 10000);
function test(){
val = document.getElementById('tt').value;
alert(val);
intv = setTimeout(function(){test()} , 10000);
}
</script>
</head>
<body>
<input type="hidden" value="10" id="tt">
</body>
</html>
問題:
このコードは、10秒間隔で入力フィールドの値を警告します。最初のアラートの後、ソースコードを表示してブラウザの入力フィールド値を変更します。そして、それは私が後で追加した価値を警告します、それは私にとって良くありません。
実際のシナリオ:
生徒と教師の両方がクラスセッションに参加する仮想教室があります。5秒ごとにajaxリクエストを送信して、バックエンドでクラスの期間を更新し+5
、dbに期間フィールドを追加します。その後、学生はクラスで費やした期間に応じて支払いを行う必要があります。賢い人がブラウザでソースコードを編集し、5秒後にリクエストを送信する代わりに、私のロジックをだますために1時間(議論のために)それに変更したのではないかと心配しています。クライアント側でのあらゆる種類の違法行為を防ぐ方法は?