Git Product home page Git Product logo

winterexam's Introduction

web安全寒假考核 基础版

1月4号拿到任务 1月6号完成全部基础任务 进阶的功能暂时不做了 留时间给别的吧(还有原因是和几个高中同学开的mc服务器需要开荒了orz

简单写写构思的应用功能实现

1.用户注册、登录、修改密码。基础的连接了一个数据库。在user表里,我保存base64编码后的用户名以及密码的sha256值,来保障数据库不会被sql注入,以及数据如果泄露的话不会直接泄露明文密码。

2.文件的管理与保存。我在每一个用户注册的时候为其单独创建了一张表,用来存储文件的hash和用户定义的文件名。在file总表里,我保存了所有文件的hash、path和文件的被使用次数(相同文件的引用次数)。在文件上传时会有一次对hash的判断,若相同则不会保存在服务器硬盘以节省服务器空间,保证相同文件仅会被存储一次。当文件被删除时,其对应的引用计数器被-1,若小于等于0则会在服务器和数据库销毁这一文件。

3.数据安全措施。分几点来说吧

  • 用户账户安全。基本上对文件的所有操作都需要对session验证,尽量防止出现越权操作的可能。
  • 用户数据安全。这一点我没什么能做的,也不可能给他加个端对端加密吧,或者多重备份什么的
  • 服务器安全。服务器对上传的文件会全部重新命名,同时不会暴漏真实的文件路径(下载功能是通过download.php读取转发),防止上传并运行木马。在防止报错而暴露文件方面,基本上有可能报错的地方都进行了关闭错误日志。在数据库方面,用户名、密码查询时都是对计算过后的值进行查询,基本防范了sql注入。

4.如果你真想运行这个程序,我的建议是运行完sql指令,配置好connect.php里的数据库配置以后,直接把这些文件扔进apache根目录,启动就完事了。我不敢对这个服务的性能、安全性负责,毕竟之前从来没写过php,让你的服务器直接崩溃也说不定。

5.遗憾。主要因为我懒狗了 如果你仔细翻翻login.php,你会发现一个关于admin的session。这个管理员的功能在开项目的第一天是想做的,没想到第二天就摆了,做完基础得了。以及其他文件,看一眼以后真有屎山那感觉。只能说还有很大提升的空间了。

winterexam's People

Contributors

tritium0041 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.