网上商店

网上商店
网上商店

计算机与信息学院

《软件安全综合设计》报告

2014 年 9月

设计题目:网上商店

学生姓名

学 号

专业班级:信息安全11-1班

一、任务概述

设计一个网上商店系统,可以实现用户、管理员使用不同身份等级登陆。不同身份等级的用户登陆后实现不同的功能操作。数据库能够存储一定数量的商品信息,并且能够对数据库实现授权访问,防止随意修改。应考虑系统安全性问题,能够提供一定的安全机制。

本人实现的是网上球衣贩卖系统。

二、开发环境与工具

JSP/JAVA,Windows7,SQL Server 2008,Tomcat。

三、需求分析

用户需求:

用户能实现注册,登陆,修改个人信息,找回密码,浏览商品界面,浏览商品信息,选中欲购买商品并添加到购物车,浏览购物车,修改购物车,提交订单,查看提交订单及已完成订单,取消已提交但未处理订单,确认收货,对已确认收货的商品进行评价。删除购买记录。

一级管理员:

一级管理员相当于“店主”,是管理二级管理员的管理员。可以查看二级管理员信息,修改二级管理员的工资等信息,对二级管理员进行评价,能与二级管理员进行互动,对二级管理员提出的建议进行审核。同时能删除二级管理员,即开除二级管理员,也可以增加新二级管理员的信息。一级管理员是固定的,不能注册,但能够实现登陆功能。一级管理员同样能实现修改个人信息,查看商品信息,查看用户评价,查看用户已提交的订单等。

二级管理员:

二级管理员相当于“员工”,主要是管理商品的管理员。可以查看商品信息,查看用户评价,查看用户已经提交的订单等。修改商品信息,修改个人信息,与一级管理员进行互动,给一级管理员提出建议。二级管理员也不能注册,只能由一级管理员手动添加。

安全需求:

认证模块角色访问控制:

在本网上球衣贩卖系统中采用基于角色的访问控制机制,基于角色的访问控制是实施面向企业安全策略的一种有效的访问控制方式。其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。

本系统设置了三种类型的访问权限,即一级管理员、二级管理员、普通用户,并为其分配不同的权限,以此来控制访问。其中用户信息存储在数据库中的users表中,而一级管理员和二级管理员都存储在admin表中。其中两种管理员的身份通过admin表中的admintype列值进行区分。一级管理员的admintype 设置为1,二级管理员的admintype设置为2。

认证模块防暴力破解机制:

认证模块必须采用防暴力破解机制,例如:使用验证码登陆或多次连续尝试登录失败后锁定帐号。如采用多次连续尝试登录失败后锁定帐号的方式,需支持连续登录失败锁定策略的“允许连续失败的次数”可配置,支持在锁定时间超时后自动解锁。使用验证码能有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。虽然登录麻烦一点,但是对于密码安全来说这个功能是很有必要,也很重要的。

口令安全策略:

为预防暴力破解,设置口令时,默认检测口令复杂度。口令不能和账号或者账号的逆序相同。操作界面中的口令不能明文显示,可将操作界面中的输入口令用*代替。包括在终端上打印或存储在日志中时也不能明文显示口令,即使是内存中的明文口令(如登录期间),也应在使用后立即覆盖。在数据库中也不能将口令直接使用明文存储,应将口令加密后的密文存储在数据库中。用户可以通过回答安全问题的方式来找回密码。用户在注册时进行找密问题的设置,将问题与答案存放在数据库用户的表中,如果密码忘记,可点击“找回密码”进行密码的找回,如果问题答案与所存储的答案相符,即可进行密码的找回,重置密码。

危险字符过滤:

系统应能防止SQL注入攻击。SQL注入攻击的思路是寻找到SQL注入的位置,然后判断服务器类型和后台数据库类型,再针对不同的服务器和数据库特点进行SQL注入攻击。因此要对非法字符进行过滤,防止直接对数据库进行操作。

防止跨站脚本攻击方法:

跨站脚本攻击属于被动式的攻击。攻击者先构造一个跨站页面,利用script、