Javascript 关于修复SCORM 1.2中这个可怕的安全漏洞有什么建议吗?我们做得对吗?
scorm 1.2的设置方式是,你有你的RTE页面,然后是两个iFrame,它们是你的API,然后是你的实际课程(SCO) 在API中,有一些javascript函数可以将数据获取/设置到数据库中 然而,您可以做一些超级简单的事情,比如->右键单击、检查元素、编辑HTML文本 然后再加上:Javascript 关于修复SCORM 1.2中这个可怕的安全漏洞有什么建议吗?我们做得对吗?,javascript,scorm,scorm1.2,Javascript,Scorm,Scorm1.2,scorm 1.2的设置方式是,你有你的RTE页面,然后是两个iFrame,它们是你的API,然后是你的实际课程(SCO) 在API中,有一些javascript函数可以将数据获取/设置到数据库中 然而,您可以做一些超级简单的事情,比如->右键单击、检查元素、编辑HTML文本 然后再加上: <button onclick="window.parent.parent.frames[0].LMSSetValue('GARBAGE','DATA')">Click me to insert
<button onclick="window.parent.parent.frames[0].LMSSetValue('GARBAGE','DATA')">Click me to insert garbage into the DB</button>
单击我将垃圾插入数据库
然后很明显,它添加了一个按钮,该按钮调用一个必须由SCO访问的SCORM函数,然后您单击该按钮100次,突然数据库收到一堆垃圾
同样地,你可以让按钮调用你创建的一个函数,然后做10000次或者每1毫秒一次,等等
甚至你也可以让它执行LMSGetValue('valuename'),然后开始从数据库中检索记录
这不是一个巨大的安全漏洞吗?我们做错什么了吗?有没有办法防止类似的事情发生 我读到一些程序员创建了一个chrome扩展,当单击一次时,它插入了所有必要的信息以自动完成任何SCORM 1.2课程。。。。也就是说,他们只是用“lesson_status=complete”这样的值调用函数(“LMSSetValue”) 这难道不意味着SCORM 1.2一点也不安全吗?这位官员有一篇关于这个问题的帖子,你可能会对此感兴趣。我在下面引用了一些相关的内容 问题的关键在于,由于SCORM通信在web浏览器中使用JavaScript,因此它本质上是不安全的,任何对SCORM稍有了解的半胜任的web开发人员都可能欺骗它。这意味着知道自己在做什么的人可以欺骗LMS,使其认为课程是使用一些相当简单的脚本完成的。SCORM使内容易于与LMS通信,这一事实也使黑客易于恶意与LMS通信 这个问题并不新鲜。它已经广为人知相当长一段时间了。[……] […]我完全同意SCORM应该更加安全,请不要怀疑这一点。这篇文章的目的是正确看待安全问题,平息恐慌,确保我们采取的任何解决方案都不会以安全的名义牺牲其他重要原则 [……] 让我们假设一下,我们在SCORM中实现了Fort Knox级别的安全性。假设恶意用户绝对无法改变内容和LMS之间的通信。那么,我们是否已经实现了安全的在线培训?那么,我们会有足够好的“高风险”的东西吗?不是真的。不在安全在线培训所需的三个领域中的任何一个 最根本的是,我们如何确定“已识别的学习者”是真正参加在线培训的人?如果我的好友在进行训练时点击我的训练,我们如何关闭“主动给他买比萨饼”的安全漏洞 我们如何确保学习者真正“体验教学内容的预期交付”,而不仅仅是在无意识地点击内容的同时观看YouTube视频 我们如何确保学习者真正“保留了知识”,而不仅仅是在谷歌上查找答案,或者问隔壁隔间的朋友测试答案是什么?在线培训是一种开卷考试 看起来他们承认该模型没有安全性,并决定不尝试修复它。这篇博文很旧,但没有SCORM 1.2那么旧 总之,你做得绝对正确。坚持下去!鉴于使用该系统的要求,我不确定是否有任何方法可以解决此安全问题。该官员有一篇关于此问题的帖子,您可能会对此感兴趣。我在下面引用了一些相关的内容 问题的关键在于,由于SCORM通信在web浏览器中使用JavaScript,因此它本质上是不安全的,任何对SCORM稍有了解的半胜任的web开发人员都可能欺骗它。这意味着知道自己在做什么的人可以欺骗LMS,使其认为课程是使用一些相当简单的脚本完成的。SCORM使内容易于与LMS通信,这一事实也使黑客易于恶意与LMS通信 这个问题并不新鲜。它已经广为人知相当长一段时间了。[……] […]我完全同意SCORM应该更加安全,请不要怀疑这一点。这篇文章的目的是正确看待安全问题,平息恐慌,确保我们采取的任何解决方案都不会以安全的名义牺牲其他重要原则 [……] 让我们假设一下,我们在SCORM中实现了Fort Knox级别的安全性。假设恶意用户绝对无法改变内容和LMS之间的通信。那么,我们是否已经实现了安全的在线培训?那么,我们会有足够好的“高风险”的东西吗?不是真的。不在安全在线培训所需的三个领域中的任何一个 最根本的是,我们如何确定“已识别的学习者”是真正参加在线培训的人?如果我的好友在进行训练时点击我的训练,我们如何关闭“主动给他买比萨饼”的安全漏洞 我们如何确保学习者真正“体验教学内容的预期交付”,而不仅仅是在无意识地点击内容的同时观看YouTube视频 我们如何确保学习者真正“保留了知识”,而不仅仅是在谷歌上查找答案或询问隔壁隔间的好友