昨天晚上发现了西安公路客运网上售票系统网站的密码找回系统存在安全漏洞,得出的结论是:
密码找回页的漏洞:
 
1、用户名栏支持用户名、身份证、电话三种任意一种匹配。
2、这一步是关键,密码找回问题提示栏居然之家显示的是密码找回问题的答案。
3、这一条更是弱智到了变态的极点:密码找回邮箱可以随意填写。
 
后经我具体测试发现,其实第二条不算是严格意义的漏洞,是由于注册页面的设计不当造成的。
在注册页面有 “密码提示问题:”、“自己输入问题:”“问题回答:”三个输入区域,也就是说两个问题可以同时存在,而理论上这两个问题输入项应该对应两个“问题回答”才合理。

一般来说常见的用户注册有以下两种方案:
1、 “密码提示问题:”、“自己输入问题:”二者选一个,界面自动显示和隐藏“系统问题答案”“自定义问题答案”输入框。
2、 “密码提示问题:”、“自己输入问题:”和“系统问题答案”“自定义问题答案”四个输入区域同时存在。

而目前 西安公路客运网上售票系统网站 的”用户注册“界面明显存在设计的缺陷,用户在习惯上容易把“系统问题答案”输入到“自己输入问题:”这一栏里,“自己输入问题:”这一栏在用户的使用习惯上存在了二义性的问题,从而导致如下漏洞的真实存在:

 
1、用户名栏支持用户名、身份证、电话三种任意一种匹配。
2、这一步是关键,密码找回问题提示栏居然之家显示的是密码找回问题的答案。
3、这一条更是弱智到了变态的极点:密码找回邮箱可以随意填写。

 

不过这样低级的缺陷一般也只有政府的项目才存在,这一点是关键!

UI设计的重要性--避免二义性的输入提示的更多相关文章

  1. 我对于UI设计这个领域的理解

    User Interface(UI),包括三部分用户.界面以及用户与界面之间的交互关系.UI设计则是指对软件的人机交互.操作逻辑.界面美观的整体设计. 如何看待UI设计这个领域? 任何一个行业的出现都 ...

  2. 小程序UI设计(4)-符合视觉规范-表单输入视觉规范

    下图是微信官方的要求 按照小程序UI设计(3)-符合视觉规范-列表视觉规范同样的方式,我们可以设计一样符合规范的输入项目.规范中没有说明padding-left的大小,我们暂定是15px.这样最外层v ...

  3. 全是干货!UI设计的30条黄金准则!

    http://www.wex5.com/portfolio-items/js-1/ 全是干货!UI设计的30条黄金准则!   总的来说,好的UI界面有几个特征:简洁.便利.目标明确.人性化.字面上看这 ...

  4. UI设计可供性解析:巧用隐藏的设计力提升用户体验

    以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 在实际的Web或App界面设计中,设计师们在学习和实践各种专业知识和技能之外,也会不可避免的遇到到各 ...

  5. 微信小程序和App的UI设计有什么异同吗?

    大家总是把小程序和App放在一起比,因此我也花时间看了一下小程序的开发指南,尤其是UI部分的设计和原则,今天就拿它和苹果的HIG(Human Interface Guidelines)做个比较,其实两 ...

  6. 浅谈UI设计中妙用无穷的深色系背景

    英文:medium 译者:优设网 - 陈子木 链接:http://www.uisdc.com/ui-benefits-of-dark-background# --------------------- ...

  7. 21个免费的UI设计工具和资源网站,不管是web,js,android都

    本帖最后由 hua631150873 于 2014-9-12 18:26 编辑 Lumzy 官方地址:http://www.lumzy.com/ Lumzy是一个网站应用和原型界面制作工具.使用Lum ...

  8. UI设计实战篇——利用Bootstrap框架制作查询页面的界面

    Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太大).尤其是现在的响应时布局(我的理解是页面根据不同的分辨率,采用不 ...

  9. Android 高级UI设计笔记07:RecyclerView 的详解

    1. 使用RecyclerView       在 Android 应用程序中列表是一个非常重要的控件,适用场合非常多,如新闻列表.应用列表.消息列表等等,但是从Android 一出生到现在并没有非常 ...

随机推荐

  1. 二维数组的传输 (host <-> device)

    前言 本文的目的很明确:介绍如何将二维数组传递进显存,以及如何将二维数组从显存传递回主机端. 实现步骤 1. 在显存中为二维数组开辟空间 2. 获取该二维数组在显存中的 pitch 值 (cudaMa ...

  2. 转载几篇关于GNU autotools的文章

    http://www.laruence.com/2009/11/18/1154.html http://www.ibm.com/developerworks/cn/linux/l-makefile/ ...

  3. 在Python中,令values=[0,1,2];values[1]=values,为何结果是[0,[...],2]?

    转载自:http://www.zhihu.com/question/21000872/answer/16856382>>> values = [0, 1, 2] >>&g ...

  4. 【字体区别】Serif和Sans Serif

    [字体区别]Serif和Sans Serif 在西方国家罗马字母阵营中,字体分为两大种类:Sans Serif和Serif,打字机体虽然也属于Sans Serif,但由于是等宽字体,所以另外独立出Mo ...

  5. linux 中 chmod/chown/cngrp的用法与区别

      1.chgrp(转变文件所属用户组) chgrp 用户组 文件名 .若是整个目次下的都改,则加-R参数用于递归. 如:chgrp -R user smb.conf 2.chown(转变文件拥有者) ...

  6. Java:多个数求和

    设计思想: 先定义int n,定义输入数的个数,输入一个新建的动态数组,输入数字存入动态数组中,函数转换并求和,最后输出. 程序流程图: 源程序代码: package com; import java ...

  7. java parseint()

    static int parseInt(String s) static int parseInt(String s, int radix) parseInt(String s)表示将 “数字” 转换 ...

  8. cron 配置计划任务的书写格式(quartz 时间配置)

    一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 1.秒(0~59) 2.分钟(0~59) 3.小时(0~23)  4.天(月)(0~31,但是你需要考虑你月的天数) 5 ...

  9. python文件操作--字符串替换

    如把test.txt文件的 所有 AAA 字符串 替换成 aaaaa with open('test.txt','+r') as f: t = f.read() t = d.replace('AAA' ...

  10. Redis GEO ,GEOHASH,Spatial_index

    https://matt.sh/redis-geo http://antirez.com/latest/0 http://invece.org/ https://github.com/davidmot ...