# 004.测验.情景之迷你用户验证
用户信息被拖库,是攻城狮的耻辱,也使整个行业蒙羞。
耻辱柱上,已经钉过了CSDN,小米和某些票贩子网站。
@史荣久 / 2015-01-05 / CC-BY-SA-3.0
## 任务说明
本次练习是一个迷你版的用户模块,目标是用户验证。
用户模块,最低级错误有:(1)被注入(2)存明文。
算法上,要用慢算法防强暴,要加盐防用户密码太傻。
通常的用户模块,是独立的三块,等价于以下三张表。
(1)信息表(USER_INFORMATION),存用户信息。
(2)验证表(USER_AUTHENTICATION),存验证信息。
(3)授权表(USER_AUTHORIZATION),存权限信息。
题外话:在发达地区,泄露用户信息会被法律制裁。
我们正在发展的路上,所以安全意识一定要接轨。
## 数据关系
CREATE TABLE IF NOT EXISTS `USER_INFORMATION` (
`UID` INT(11) NOT NULL COMMENT '用户ID',
`SURNAME` VARCHAR(50) NOT NULL COMMENT '姓',
`GVNNAME` VARCHAR(50) NOT NULL COMMENT '名',
`BIRTHDAY` DATE NOT NULL COMMENT '生日',
PRIMARY KEY (`UID`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;
CREATE TABLE IF NOT EXISTS `USER_AUTHENTICATION` (
`LOGINID` VARCHAR(100) NOT NULL COMMENT '登陆ID',
`UID` INT NOT NULL COMMENT '用户ID(FK)',
`PASSHASH` VARCHAR(200) NOT NULL COMMENT '密码散列',
`PASSSALT` VARCHAR(100) NOT NULL COMMENT '密码加盐',
`HASHTYPE` INT NOT NULL COMMENT '散列算法',
PRIMARY KEY (`LOGINID`),
CONSTRAINT `AUTHEN_UID`
FOREIGN KEY (`UID`)
REFERENCES `USER_INFORMATION` (`UID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `USER_AUTHORIZATION` (
`UID` INT NOT NULL COMMENT '用户ID(FK)',
`ROLE` INT NOT NULL COMMENT '角色ID(FK)',
PRIMARY KEY (`UID`, `ROLE`),
CONSTRAINT `AUTHOR_UID`
FOREIGN KEY (`UID`)
REFERENCES `USER_INFORMATION` (`UID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;
## 基础问题
(1)上述表,一个用户,可以有多个LOGINID么?
(2)常用的密码算法有哪些?他们各有什么特点?
(3)文中的"慢算法"指什么?如何做到防爆的?
(4)文中的"加盐"指什么?什么样的密码"太傻"?
(5)简单的"注入"有哪些?怎么防止被注入?
## 编码问题
(a)写一个计算密码强度的服务,1-100表示强度值。
(b)尽情发挥,写一个用户登陆服务(即通过验证)。
(c)尽情发挥,写一个用户注册服务。
提示:所谓服务,可以但不应该是简单的程序。
## 参考资料
[加盐密码哈希:如何正确使用(中文)](
http://blog.jobbole.com/61872/)
[加盐密码哈希:如何正确使用(英文)](
http://crackstation.net/hashing-security.htm)
----
题图:2014年圣诞节,12306明文密码及用户信息泄露,随后,此案被迅速告破。
原文:
http://www.moilioncircle.com/actions/004.quiz.case-mini-authentication.html
分享到:
相关推荐
在本案例中,"TASKalfa1800_2200固件Ver004.007.rar" 是针对这两款设备的固件升级包,版本号为004.007,表明这是一个较新的版本,旨在提供比之前版本更好的用户体验。 固件,即Firmware,是一种存储在电子设备内部...
测试与验证仿真:功能测试.docx 测试与验证仿真:功能测试all.docx 测试与验证仿真:功能测试v1.docx 测试与验证仿真:功能测试_1.功能测试基础理论.docx 测试与验证仿真:功能测试_10.安全性功能测试.docx 测试与...
测试与验证仿真:可靠性测试.docx 测试与验证仿真:可靠性测试all.docx 测试与验证仿真:可靠性测试_(10).加速寿命测试.docx 测试与验证仿真:可靠性测试_(11).可靠性测试中的数据收集与分析.docx 测试与验证...
测试与验证仿真:ATE测试仿真_(15).ATE测试仿真中的复杂系统测试.docx 测试与验证仿真:ATE测试仿真_(17).ATE测试仿真中的高级编程技巧.docx 测试与验证仿真:ATE测试仿真_(18).ATE测试仿真中的测试激励与响应...
安全性与可靠性测试.docx 测试与验证仿真:故障注入仿真_(13).故障注入仿真在不同行业中的应用.docx 测试与验证仿真:故障注入仿真_(14).故障注入仿真的未来发展趋势.docx 测试与验证仿真:故障注入仿真_(1)....
6. **安全编程**:包括用户输入验证,防止SQL注入,XSS攻击等,确保BBS系统的安全性。 7. **多线程**:对于高并发的BBS系统,理解并应用多线程编程可以优化系统性能,提高用户体验。 8. **前端技术**:HTML、CSS、...
软件测试报告 珍藏版。好用记得回复推荐哦 目 录 1. 测试概述 3 1.1. 编写目的 3 1.2. 测试范围 3 1.3. 参考资料 3 2. 测试计划执行情况 3 2.1. 测试类型 3 2.2. 测试环境与配置 4 2.3. 测试人员 4 2.4. ...
【云之迅短信验证】是基于云计算技术的一种高效、安全的身份验证方式,广泛应用于网站注册、登录、支付等场景,确保用户信息安全。本压缩包文件包含实现短信验证所需的关键资源,如php代码、HTML界面以及可能的...
本测试报告旨在验证MES系统的各项功能是否符合用户需求,保证系统的稳定性和可靠性。 ### 1. 概述 #### 1.1 目的 本次用户验收测试的主要目的是验证MES系统的各个模块功能是否正常运行,确保其在实际生产环境中...
开关电源的测试验证对于保证产品质量和用户安全至关重要。它能够发现潜在的设计缺陷,如效率低、输出不稳定、电磁干扰(EMI)过大等问题,从而避免在实际应用中出现故障,影响设备的正常运行。 二、测试内容 1. ...
《芯片验证漫游指南》是一本深入探讨芯片验证技术的专业资料。在电子工程领域,芯片验证是确保集成电路设计正确无误的关键步骤。它涉及到复杂的逻辑分析、测试策略制定以及问题定位等多个方面。以下是对这份指南中...
Matlab分享系列 - 4 - Matlab_Simulink模型检查,验证与测试 a. 需求链接建立,模型检查与验证方法 b. 模型测试之手工用例和自动用例生成 c. 代码验证 d. 示例与实践
Java验证AD域用户登录是企业级应用中常见的一种身份验证方式,主要用于确保只有授权的用户才能访问特定的系统或服务。AD(Active Directory)域是由微软Windows Server操作系统提供的目录服务,用于集中管理用户账户...
1. 安全性分析:在修改用户验证代码时,需要对现有系统进行安全性分析,找出可能存在的安全漏洞或不足之处,如密码存储机制是否安全、用户数据传输过程是否加密、以及防止SQL注入等攻击手段。 2. 身份验证协议:...
而“FetionSmart 0.9.0530迷你飞信测试版”则是飞信产品线中的一款轻量级应用,旨在为用户提供便捷、快速的通讯体验。尽管名为“迷你”,但在内存占用方面,这款测试版并未表现出明显的轻量化优势,这也是我们今天...
在Android系统中,情景模式是一种方便用户根据不同的环境或需求调整设备设置的功能。例如,静音模式、振动模式、正常模式等。这个压缩包“Android 设置情景模式源码.zip”很可能包含了实现这些功能的源代码,是理解...
**中国联通总部信息化软件POC验证测试管理规范** POC(Proof of Concept)测试,也称为概念验证测试,是软件选型过程中的一个重要环节。在这个阶段,潜在的供应商或解决方案会被要求在实际环境中演示其功能、性能和...
迷你SQL2000是一款轻量级的数据库管理系统,它为那些不需要完整SQL Server功能集的用户提供了方便。尽管SQL Server是微软推出的一款强大的企业级数据库解决方案,但迷你SQL2000则针对小型项目和个人使用场景,简化了...
迷你DVD管理器系统是一个基于Java和MySQL数据库技术的软件应用,主要目的是管理和组织个人或商业环境中的DVD资源。这个系统可能包含多个模块,如DVD信息录入、查询、编辑、删除以及库存管理等,旨在提高效率并优化...
适合学习IC芯片验证平台搭建及测试