清风不知道——项目系统设计与数据库设计

这个作业属于哪个课程https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10829
这个作业的目标 项目系统设计与数据库设计
作业正文 下文
其他参考文献  

  一.团队项目的预期开发计划时间安排

6.15~6.25  完成项目雏形
6.25~6.30 系统优化
6.30~7.5 连接数据库,进行测试

 

     二. 团队项目的预期开发计划分工安排

前端,原型,开发 黄浩,金澳威,申彪 
测试,完善 颜悠,李宁,康翔宇

    .给出体系结构设计+功能模块层次图、设计类图、ER分析+表结构设计、系统安全和权限设计

体系结构设计图

 

功能模块图

 

 

 

 

 

设计类图

 

 

 

 

 

ER分析

 

 

 

 

 

 表结构设计

表名

功能说明

STUDENT

学生表,用于验证是否是学生

USER_INFO

用户信息表

SEAT

座位表,座位信息和情况

STUDENT表(学生表)

表名

STUDENT

 

 

 

列名

数据类型(精度范围)

/非空

约束条件

其他说明

STUDENT_ID

VARCHAR(22)

非空

PRIMARY KEY

学号

STUDENT_NAME

VARCHAR(40)

非空

 

学生姓名

IS_REGISTER

VARCHAR(22)

 

 

是否已注册(没注册为空,已注册为用户账号)

USER_INFO表(用户信息表)

表名

USER_INFO

 

 

 

列名

数据类型(精度范围)

/非空

约束条件

其他说明

USER_ID

VARCHAR(22)

非空

PRIMARY KEY

账号

USER_NAME

VARCHAR(40)

非空

UNIQUE

用户名

USER_PASSWORD

VARCHAR(40)

非空

 

密码

USER_PICTRUE

IMAGE

 

 

头像(空的话,用默认头像)

SEAT表(座位表)

表名

SEAT

 

 

 

列名

数据类型(精度范围)

/非空

约束条件

其他说明

SEAT_ID

VARCHAR(20)

非空

PRIMARY KEY

座位号

SEAT_ADD

VARCHAR(40)

非空

 

座位位置

SEAT_INFO

VARCHAR(400)

非空

 

座位信息

SEATY_STATUS

INT

非空

 

座位是否为空

 

 

 

 

 

 

 

 

系统安全和权限设计

 

常见web攻击方法及防御手段总结

1. CSRF (cross-site request forgery)跨站请求伪造

预防

    之所以被攻击是因为攻击者利用了存储在浏览器用于用户认证的cookie,那么如果我们不用cookie来验证不就可以预防了。所以我们可以采用token(不存储于浏览器)认证,为每一个提交的表单生成一个随机token, 存储在session中,每次验证表单token,检查token是否正确。。
    通过referer识别,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。那么这样的话,我们必须登录银行A网站才能进行转账了。



2. XSS (cross site script)跨站脚本攻击

预防

  • 转移和过滤用户提交的信息,将输入的数据进行转义处理,比如说讲 < 转义成&lt



 3. session攻击,会话劫持

防御方法:

  • 每次登陆重置sessionID
  • 设置HTTPOnly,防止客户端脚本访问cookie信息,阻止xss攻击
  • 关闭透明化sessionID
  • user-agent头信息验证
  • token校验

 4.SQL注入

预防

    在java中,我们可以使用预编译语句(PreparedStatement),这样的话即使我们使用sql语句伪造成参数,到了服务端的时候,这个伪造sql语句的参数也只是简单的字符,并不能起到攻击的作用。
    很多orm框架已经可以对参数进行转义
    做最坏的打算,即使被’拖库‘('脱裤,数据库泄露')。数据库中密码不应明文存储的,可以对密码使用md5进行加密,为了加大破解成本,所以可以采用加盐的(数据库存储用户名,盐(随机字符长),md5后的密文)方式

5.DDOS

 

预防

  • 最直接的方法增加带宽。但是攻击者用各地的电脑进行攻击,他的带宽不会耗费很多钱,但对于服务器来说,带宽非常昂贵。
  • 云服务提供商有自己的一套完整DDoS解决方案,并且能提供丰富的带宽资源

用户注册

1.      得到用户传过来的密码后,首先在计算机中获取一个随机数,

2.      获取到随机数后,设计一个任意算法,对随机数与用户密码进行拼接处理,比如最简单的(用户密码+随机数),者将得到一个全新的字符串

3.      我们再对这个新的字符串进行哈希算法处理,得到一个新的密码,由于哈希算法的特殊性,该算法是不可逆的。

4.      将用户id,新密码和随机数保存到数据库中。用户注册成功。

用户登录

1.      服务端获取到用户的id和密码后,根据用户id从数据库中取出该用户的新密码和随机数。

2.      把用户传过来的旧密码和随机数交给用户注册第2步中的随机数和密码拼接算法,拼接后,得到一个新的字符串(和用户注册第2步得到的全新字符串是一模一样的)。

3.      将新字符串交给哈希算法处理将得到一个处理结果。

4.      如果处理后的结果和数据库中存储的新密码相同,那么,该用户传过来的密码是正确的,登录成功,否则,登录失败。

   四.工作流程、组员分工、组员贡献度比例

工作流程:组长分配任务,各组员合作完成

组员分工:

        黄浩:体系结构和功能模块图,设计类图

       金澳威:ER分析和表结构设计,博客园编辑

       申彪:表结构设计

       李宁:完善

       颜悠:完善

      康翔宇:完善

组员贡献度:

黄浩 30%
金澳威 25%
申彪 15%
李宁 10%
康翔宇 10%
颜悠 10%

   五.《系统设计说明书》《数据库设计说明书》github 链接

https://github.com/jindaxiayes/group-work

 

posted @ 2020-06-14 17:11  清风不知道  阅读(706)  评论(0编辑  收藏  举报