目前我的任务是为学生调试一个测验客户端,最近我遇到了一些可能是潜在安全故障的问题。每个测验或测试都有相同的命名约定示例:S1Q1.js = 第 1 节测验 1
Javascript 测验文件 (AKA S1Q1.js) 只是一个提交到服务器的表单,所以我不担心,但是在学生提交表单后,它会被评分,他们会被带到一个评论页面那里是反馈解释为什么正确答案是正确的。审查文件始终只是后面带有 R 的测验文件,因此它将是 S1Q1R.js 如果学生能够在考试结束之前下载审查文件,那么他们很容易得到 100。
可能的安全问题来自遵循严格模式的审查文件名。我担心学生可能仅通过知道 URL 和文件名就可以从服务器请求 S1Q1R.js 文件。笔记进入评论页面的唯一方法是点击提交测试按钮,如果您手动输入 URL,它会将您重定向到主页尾注
那我有什么好担心的吗?如果一个学生可以做到这一点,他们将如何去做,更重要的是,我将如何阻止他们?