`
trydofor
  • 浏览: 150453 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

004.测验.情景之迷你用户验证

阅读更多


# 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
0
0
分享到:
评论

相关推荐

    TASKalfa1800_2200固件Ver004.007.rar

    在本案例中,"TASKalfa1800_2200固件Ver004.007.rar" 是针对这两款设备的固件升级包,版本号为004.007,表明这是一个较新的版本,旨在提供比之前版本更好的用户体验。 固件,即Firmware,是一种存储在电子设备内部...

    004.纯化水贮存输送系统设备清洗消效果验证报告借鉴.pdf

    - 对清洗消毒的效果进行验证,包括视觉检查、pH测试和微生物限度检查。取样点覆盖了多个关键区域,如贮水灌、送水口、回水口、洁净区等,确保无残留物,pH中性,且微生物数量不超过50CFU/棉签。 5. 评价与批准: ...

    [HeyJava][传智播客]BBS-day002-004.rar

    6. **安全编程**:包括用户输入验证,防止SQL注入,XSS攻击等,确保BBS系统的安全性。 7. **多线程**:对于高并发的BBS系统,理解并应用多线程编程可以优化系统性能,提高用户体验。 8. **前端技术**:HTML、CSS、...

    用户测试的计划.doc

    * 用户需求的测试方案:对用户需求进行测试和验证。 * 现成软件的测试方案:对现成软件进行测试和验证。 * 网络安全的测试方案:对网络安全进行测试和验证。 * 缺陷管理:对软件产品中的缺陷进行管理和跟踪。 * 风险...

    软件测试总报告-实例(珍藏版)

    软件测试报告 珍藏版。好用记得回复推荐哦 目 录 1. 测试概述 3 1.1. 编写目的 3 1.2. 测试范围 3 1.3. 参考资料 3 2. 测试计划执行情况 3 2.1. 测试类型 3 2.2. 测试环境与配置 4 2.3. 测试人员 4 2.4. ...

    云之迅短信验证.zip

    【云之迅短信验证】是基于云计算技术的一种高效、安全的身份验证方式,广泛应用于网站注册、登录、支付等场景,确保用户信息安全。本压缩包文件包含实现短信验证所需的关键资源,如php代码、HTML界面以及可能的...

    MES系统用户验收测试案例.doc

    本测试报告旨在验证MES系统的各项功能是否符合用户需求,保证系统的稳定性和可靠性。 ### 1. 概述 #### 1.1 目的 本次用户验收测试的主要目的是验证MES系统的各个模块功能是否正常运行,确保其在实际生产环境中...

    soc asic设计验证和测试方法学.7z

    **系统级芯片(System-on-a-Chip,SoC)ASIC设计验证与测试方法学** 在当前的电子技术领域,SoC设计已经成为主流,因为它能够在一个单一的芯片上集成多种功能,包括处理器、存储器、接口和其他逻辑模块。SoC设计...

    Matlab分享系列 - 4 - Matlab_Simulink模型检查,验证与测试 .pdf

    Matlab分享系列 - 4 - Matlab_Simulink模型检查,验证与测试 a. 需求链接建立,模型检查与验证方法 b. 模型测试之手工用例和自动用例生成 c. 代码验证 d. 示例与实践

    Android 设置情景模式源码.zip

    在Android系统中,情景模式是一种方便用户根据不同的环境或需求调整设备设置的功能。例如,静音模式、振动模式、正常模式等。这个压缩包“Android 设置情景模式源码.zip”很可能包含了实现这些功能的源代码,是理解...

    数据中心综合验证测试简述.pdf

    整个过程专注于验证和记录主要设施和系统在安装、测试、运行和维护过程是 否符合用户的要求。 每个层级的目标如下: 1. 性能验证:确保数据中心电力、暖通等基础设施将会支持关键任务负载的所有预期需要。 2. 功能...

    完整版在线注册验证.e.rar

    它涉及到用户在安装和使用软件时,需要通过网络向软件提供商发送请求,验证其合法性。这个压缩包“完整版在线注册验证.e.rar”很可能包含了实现这一功能的相关代码、文档或者工具。 首先,我们需要理解在线注册验证...

    RS232-ICT004测试工具.rar

    描述中的"RS232-ICT004测试工具"进一步确认了这个压缩包的目的,即它提供了与RS232-ICT004设备交互和验证其功能的软件或程序。 标签"RS232-ICT004测试工具"强化了这个主题,表明内容是关于测试和调试RS232-ICT004...

    迷你SQL2000

    迷你SQL2000是一款轻量级的数据库管理系统,它为那些不需要完整SQL Server功能集的用户提供了方便。尽管SQL Server是微软推出的一款强大的企业级数据库解决方案,但迷你SQL2000则针对小型项目和个人使用场景,简化了...

    Delphi通过网络验证用户登录(CS验证)示例..rar

    在"Delphi通过网络验证用户登录(CS验证)示例"中,我们讨论的核心是客户端-服务器(Client-Server,简称CS)架构的登录验证机制。这个示例可能包含了如何在Delphi中实现一个本地客户端应用程序,该程序会通过网络与...

    SystemVerilog测试验证平台(中文版).pdf

    适合学习IC芯片验证平台搭建及测试

    一个简单的Codeigniter用户登录验证例子程序

    在这个"一个简单的Codeigniter用户登录验证例子程序"中,我们将探讨如何在Codeigniter中实现用户认证和登录功能,这对于任何Web应用来说都是核心部分。这个程序包含了一些关键组件,如密码加密、session管理以及用户...

    自定义用户登陆和验证

    如果你想要实现自定义的用户登录和验证功能,例如添加特殊的安全机制或整合第三方认证服务,你可以选择替换默认的`msgina.dll`。 首先,理解`msgina.dll`的工作原理至关重要。它作为系统登录窗口的后端,接收用户的...

    ios-短信验证测试.zip

    在"ios-短信验证测试.zip"这个压缩包中,我们可以推测包含的是一个关于iOS应用中实现短信验证功能的测试项目。 短信验证的基本流程是这样的:当用户输入手机号码后,系统会向该号码发送一条包含验证码的短信。用户...

    ios-短信验证.zip

    在iOS应用开发中,短信验证是一种常见的用户身份验证机制,用于确保用户提供的手机号码真实有效。这个"ios-短信验证.zip"压缩包可能包含了一个简单的iOS应用程序示例,用于演示如何集成短信验证功能。以下是对这个...

Global site tag (gtag.js) - Google Analytics