2024 高校网络安全管理运维赛 -实践能力赛项Writeup(web-1部分解析)

前端 0

1、Messy Mongo

这是一个关于大学生小华编程奋斗历程的故事。

小华是个热爱编程的大一新生,她对编程课程充满热情。然而当老师布置了基于MongoDB的TODO网站大作业时,她却感到了前所未有的挑战。

一开始,小华对MongoDB的概念有些陌生,她在网上查阅了大量的教程和文档。通过不懈的努力,她逐步掌握了MongoDB的基本操作,并开始着手设计网站的整体架构。

小华决定先从设计数据库开始入手。她构思了一个简单但实用的document schema,将TODO任务项目的各种属性如标题、内容、完成状态等进行了细致的规划。在设计过程中,她也意识到了数据安全性的重要性,因此决定采取一些措施来加强网站的安全性。

通过查阅资料,小华了解到可以在MongoDB中设置document validation,从而限制插入和更新数据时必须符合预定义的schema结构。这不仅可以确保数据的完整性和一致性,而且还能防止攻击者注入恶意数据。于是,她在自己设计的TODO document schema中添加了相应的validation规则。

数据库的设计工作完成后,小华开始着手网站前端和后端的开发。虽然过程中遇到了不少困难和挫折,但她都一一克服了,并且渐渐掌握了使用MongoDB进行数据存取的技巧。

就在她以为可以顺利完成这个大作业时,一个新的问题突然出现了。在进行功能测试时,她发现从前端发来的某些特殊格式的输入数据,竟然可以逃过MongoDB的document validation检查,并成功写入数据库。小华意识到这是一个严重的安全隐患,如果网站上线后被攻击者发现并加以利用,那将造成无法挽回的灾难。

经过一番仔细排查,小华终于发现了问题所在。原来是由于她在前端对用户输入数据的过滤不够严格,导致攻击者可以构造出不符合预期格式的数据。她当机立断地对前端代码进行了重构,增加了更为严格的数据验证逻辑。

在确保前后端数据交互的安全性后,小华终于可以放下心中的一块大石,将注意力集中在完善其他功能上了。经过将近一个学期的努力,她终于完成了这个TODO网站,在演示答辩时赢得了老师和同学的赞许。

这个大作业不仅锻炼了小华的编程能力,更重

也许您对下面的内容还感兴趣: