SCORM1.2的设置方式是,您有RTE页面,然后有两个iframes,这是您的API,然后是您的实际经验(SCO)
在API中,有一些javascript函数将数据输入到数据库中。
然而,您可以做一些非常简单的事情,如->右键单击、检查元素、编辑HTML文本。
然后只需添加:
<button onclick="window.parent.parent.frames[0].LMSSetValue('GARBAGE','DATA')">Click me to insert garbage into the DB</button>然后,它显然添加了一个按钮,它调用了一个必须由SCO访问的强制SCORM函数,然后您单击该按钮100次,突然数据库得到了一堆垃圾。
同样,您也可以让按钮调用您创建的函数,并执行10,000次或每1毫秒一次等操作。
甚至你也可以让它做LMSGetValue('valuename'),然后开始从数据库中检索记录!
这不是一个巨大的安全漏洞吗?我们做错什么了吗?有什么办法可以防止这种事情发生吗?
我读到,一些程序员创建了一个铬扩展,当点击一次,插入所有必要的信息自动完成任何SCORM 1.2课.也就是他们用"lesson_status =lesson_status“这样的值来调用函数(”lesson_status“)。
那么,这并不意味着SCORM1.2根本就不太安全吗?
发布于 2020-01-30 19:36:13
官方的SCORM博客有一篇关于这个问题的文章,你可能会觉得很有趣。下面我引用了一些相关的信息。
问题的症结在于,由于SCORM通信在web浏览器中使用JavaScript,它本质上是不安全的,并且可能被任何对SCORM了解一点点的半胜任的web开发人员所欺骗。这意味着,知道自己在做什么的人可以欺骗LMS,让他们认为使用一些相当简单的脚本已经完成了课程。SCORM使内容更容易与LMS通信,这也使黑客更容易与LMS进行恶意通信。 这个问题并不新鲜。它已经广为人知有一段时间了。..。我完全同意SCORM应该更安全,请不要怀疑。这篇文章旨在透视安全,平息恐慌,并确保我们采取的任何解决方案都不会以安全为名牺牲其他重要原则。 ..。 让我们假装一下,我们在SCORM中实现了Fort级别的安全性。假设恶意用户绝对无法更改内容和LMS之间的通信。届时,我们会否获得安全的网上培训?那麽,我们会否有足以应付“高风险”的东西呢?不怎么有意思。不在安全在线培训所需的三个领域中的任何一个领域。 最根本的是,我们如何确定“被识别的学习者”是真正接受在线培训的人?我们如何关闭“提供给我的朋友一个比萨饼”的安全漏洞,如果他将点击通过我的培训,而他正在做他的呢? 我们如何确保学习者真正“体验到教学内容的预期交付”,而不仅仅是在盲目地点击内容的同时观看YouTube视频? 我们如何确保学习者真正“保留了知识”,而不仅仅是在谷歌上查找答案,或者在下一个小隔间里问他的伙伴测试答案是什么?在线培训是一项公开的书本测试。
看起来他们承认这个模型的安全性是零的,并且已经决定不去修复它。这篇博文是旧的,但没有SCORM1.2那么古老。
总之,你做得很对。坚持下去!考虑到使用系统的要求,我不确定是否有任何方法来解决这个安全问题。
https://stackoverflow.com/questions/59993078
复制相似问题