1

最近一个客户(学校)要求构建一个应用程序来向他们的学生显示成绩,因此通过读取数据库等的 html 表显示成绩非常容易。

但是一个安全问题困扰着我,孩子们很聪明,有时他们找到了向父母展示不同成绩的方法,他们不应该得到的成绩,因此假设我认为这样做很容易:

$("table tr td").each(function(index, item){ $(item).text("A++") });

voila你改变浏览器屏幕显示你的父母和你的女朋友可以自由地和你一起去那么容易。

使用 google 控制台或 firefox firebug,您可以修改 html 以显示您有不同的成绩,他们知道最终他们将面对真实成绩的命运。但同时争取时间哈哈。

所以基本上我的想法是将等级渲染成图像,但从设计角度、可维护性、可访问性等角度来看,这并不酷。

我认为这是一个要从服务器解决的问题,但只是为了一个机会(远程机会),这是一种冻结 DOM 元素并拒绝对它们采取任何行动的方法?或者你有一个好主意来解决这个问题盒子?

提前致谢..

4

2 回答 2

3

答案很简单:不要相信孩子会向父母展示任何东西。只需要一个聪明的孩子复制您的 HTML 并显示完美的成绩,然后将链接分享给所有人,然后即使是班上的白痴也可以直接向他们的父母显示。

相反,正如 Wesley Murch 所说,您应该让父母而不是他们的孩子能够登录。然后,父母可以不受干扰地看到孩子的进步。

于 2013-07-12T19:39:19.387 回答
1

Kolink 的回答很好。对于实际的编码答案,您将始终能够操作 DOM,因此,虽然不那么友好,但您可以使用图像方法。只有这么多等级和这么多图像,所以它并不是真正的资源密集型。

但是,您将希望以无法识别的方式命名图像,否则孩子可能只是更改图像名称,我们又回到了开始的地方。

另一个可能的想法是研究 HTML 5 Canvases。你可以在一个人不能轻易直接编辑的地方做很多事情。

于 2013-07-12T19:45:26.713 回答