今天我在我的 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 小时(为了争论)来欺骗我的逻辑。如何防止客户端的任何非法活动?