【厦门大学附属第一医院(互联网医院)-注册安全分析报告-无验证方式导致安全隐患】

前言

由于网站注册入口容易被黑客攻击,存在如下安全问题:

1. 暴力破解密码,造成用户信息泄露

2. 短信盗刷的安全问题,影响业务及导致用户投诉

3. 带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞

在这里插入图片描述

所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案, 但在机器学习能力提高的当下,连百度这样的大厂都遭受攻击导致点名批评, 图形验证及交互验证方式的安全性到底如何? 请看具体分析

一、 厦门大学附属第一医院(互联网医院)- PC注册入口

简介:厦门大学附属第一医院创办于1937年8月,前身是爱国华侨胡文虎先生捐资成立的“福建省立医院”,坐落在美丽鹭岛的鸿山脚下,地处市中心,从50张床位、87人起步,悬壶济世、救死扶伤至今,医院步履坚实地走过了87年。除院本部外,还拥有6家分院、1家互联网医院、1家护理院,是一所集医疗、教学、科研、预防及康复为一体的闽西南规模最大的三级甲等综合性医院。

在这里插入图片描述

在这里插入图片描述

二、 安全性分析报告:

前端界面分析,厦门大学附属第一医院(互联网医院)未采取任何验证措施,存在验证的安全隐患,同行一般会在注册下发短信验证码时采用图形验证、行为验证方式。

在这里插入图片描述

三、 测试方法:

1 模拟器交互部分


private final String INDEX_URL = "https://xmdyyy.health.zoenet.cn/#/register";

	@Override
	public RetEntity send(WebDriver driver, String areaCode, String phone) {
		try {
			RetEntity retEntity = new RetEntity();
			driver.get(INDEX_URL);
		
			// 输入手机号
			Thread.sleep(500);
			WebElement phoneElemet = driver.findElement(By.xpath("//input[@placeholder='请输入您的手机号']"));
			phoneElemet.sendKeys(phone);

			// 点击发送验证码按钮
			Thread.sleep(500);
			WebElement sendElemet = driver.findElement(By.xpath("//button/span[contains(text(),'获取验证码')]"));
			if (sendElemet != null)
				sendElemet.click();

			Thread.sleep(1500);
			WebElement gtElemet = ChromeDriverManager.waitElement(driver, By.xpath("//button/span[contains(text(),'重新获取')]"), 1);
			String gtInfo = (gtElemet != null) ? gtElemet.getText() : null;
			retEntity.setMsg(gtInfo);
			if (gtInfo != null && gtInfo.contains("重新获取")) {
				retEntity.setRet(0);
			} else {
				System.out.println("gtInfo=" + gtInfo);
			}
			return retEntity;
		} catch (Exception e) {
			System.out.println("phone=" + phone + ",e=" + e.toString());
			for (StackTraceElement ele : e.getStackTrace()) {
				System.out.println(ele.toString());
			}
			return null;
		} finally {
			driver.manage().deleteAllCookies();
		}
	}

2 测试结果输出:

在这里插入图片描述

  由于该网站无验证措施,本次测评非常简单

四丶结语

厦门大学附属第一医院创办于1937年8月,前身是爱国华侨胡文虎先生捐资成立的“福建省立医院”,坐落在美丽鹭岛的鸿山脚下,地处市中心,从50张床位、87人起步,悬壶济世、救死扶伤至今,医院步履坚实地走过了87年。除院本部外,还拥有6家分院、1家互联网医院、1家护理院,是一所集医疗、教学、科研、预防及康复为一体的闽西南规模最大的三级甲等综合性医院。 医院作为涉及民生的重点事业单位,技术实力较弱采取采购产品的方式,采购了一家智业健康的软件产品,这家公司好像对短信被盗刷的方面不够重视或没有安全方面的经验 ,测试结果就是随便你怎么攻击都可以,这也有点太开放了, 短信验证码难道不要钱吗 ? 这对黑客来说肯定是好消息, 弄个简单的脚本就可以搞定

很多人在短信服务刚开始建设的阶段,可能不会在安全方面考虑太多,理由有很多。
比如:“ 需求这么赶,当然是先实现功能啊 ”,“ 业务量很小啦,系统就这么点人用,不怕的 ” , “ 我们怎么会被盯上呢,不可能的 ”等等。

有一些理由虽然有道理,但是该来的总是会来的。前期欠下来的债,总是要还的。越早还,问题就越小,损失就越低。

所以大家在安全方面还是要重视。(血淋淋的栗子!)#安全短信#

戳这里→康康你手机号在过多少网站注册过!!!

谷歌图形验证码在AI 面前已经形同虚设,所以谷歌宣布退出验证码服务, 那么当所有的图形验证码都被破解时,大家又该如何做好防御呢?

>>相关阅读
《腾讯防水墙滑动拼图验证码》
《百度旋转图片验证码》
《网易易盾滑动拼图验证码》
《顶象区域面积点选验证码》
《顶象滑动拼图验证码》
《极验滑动拼图验证码》
《使用深度学习来破解 captcha 验证码》
《验证码终结者-基于CNN+BLSTM+CTC的训练部署套件》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/894232.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实验23:DA呼吸灯实验

电路硬件: 实现功能: 代码: public.h #ifndef _public_H #define _public_H#include "reg52.h" //#include "key.h"typedef unsigned int u16; typedef unsigned char u8;void delay_10us(u16 n); void delay_ms(u16 ms);#endif public.c #include …

线性代数学习

1.标量由只有一个元素的张量表示 import torchx torch.tensor([3,0]) y torch.tensor([2,0])x y, x * y, x / y, x**y 2.可以将向量视为标量值组成的列表 x torch.arange(4) x 3.通过张量的索引访问任一元素 x[3] 4.访问张量长度 len(x) 5.只有一个轴的张量&#xff0c…

单片机常见的存储器

常见的存储器: 易失性存储器RAM RAM,随机访问存储器(Random Access Memory),易失性存储器,它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。它的作用是当开机后系…

bml上部署yolov8

第一步 #第二步 在这里插入代码片git clone https://github.com/ultralytics/ultralytics.git一定要创建一个storage来专门存放yolov8,放在其他路径容易出错。 如果下载之后storage路径里面没有ultralytics,那是没有下载成功,多下载几次就行…

OracleT5-2 Solaris11安装

1、Solaris11安装 在光驱中插入Solaris11的光盘后,在ok提示中boot cdrom {0} ok boot cdrom NOTICE: Entering OpenBoot. NOTICE: Fetching Guest MD from HV. NOTICE: Starting additional cpus. NOTICE: Initializing LDC services. NOTICE: Probing PCI devices. N…

redis的zset实现下滑滚动分页查询思路

常规zset查询 我们redis的数据为 我们知道 我们常规查询的话 我们假如 zset 表中 有7个元素,然后我们进行分页查询的话,我们一次查3个元素,然后查出来元素 和元素的分数 我们redis的语法应该这样写 zrevrangebyscore wang 1000 0 withsc…

飞机大战告尾

参考 PPO算法逐行代码详解 链接 通过网盘分享的文件:PlaneWar 链接: https://pan.baidu.com/s/1cbLKTcBxL6Aem3WkyDtPzg?pwd1234 提取码: 1234 10.17关于博客发了又改这件事 悲催的事 今天训练了一早上ppo模型,满怀期待的检测成果时发现一点长进都…

【Unity新闻】Unity 6 正式版发布

Unity CEO Matt Bromberg 在今天自豪地宣布,Unity 6 正式发布!作为迄今为止最强大和稳定的版本,Unity 6 为游戏和应用开发者提供了大量的新功能和工具,帮助他们加速开发并提升性能。 本次正式版是6.0000.0.23f1(LTS&a…

备份界的扛把子,秒杀NBU|DP,Veeam免费可以使用了!

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…

青少年编程能力等级测评CPA C++(二级)试卷(2)

青少年编程能力等级测评CPA C(二级)试卷(2) 一、单项选择题(共20题,每题3.5分,共70分) CP2_2_1.下列C程序段中,对二维数组arr的定义不正确是( &…

【算法】力扣:复制含有随机指针节点的链表

前置知识 数据结构-链表:解法二采用了存粹的链表知识和特殊处理,最优解。[可选]数据结构-哈希表:解法一使用了Java语言内置的哈希表【兴趣】哈希思想, 设计哈希函数,开放寻址法,数组模拟哈希表。–笔者未写此法&#…

RabbitMQ异常

一、如果遇到tags[[]], channelnull, acknowledgeModeMANUAL local queue size0;An unexpected connection driver error occured这样类似的错误,请检查你的host配置是否正确,是否与配置文件中的相同 2024-10-17 08:10:46.053 INFO 18988 --- [tContai…

2023年华为杯数学建模竞赛题F论文和代码

强对流降水临近预报建模与优化 对问题一,为了实现基于前一小时(10帧)的实测雷达观测量(ZH、ZDR、KDP),对后续一小时(10帧)的ZH进行预报,本文首先建立了线性拟合与RMSE双驱…

网络通信与并发编程(二)基于tcp的套接字、基于udp的套接字、粘包现象

基于tcp的套接字 文章目录 基于tcp的套接字一、套接字的工作流程二、基于tcp的套接字通信三、基于udp的套接字通信四、粘包现象 一、套接字的工作流程 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个…

Linux基本使用和程序部署

文章目录 一. Linux背景Linux发行版 二. Linux环境搭建Linux常见命令lspwdcdtouchcatmkdirrmcpmvtailvimgreppsnetstat管道 三. 搭建java部署环境安装jdk安装mysql部署Web项目到Linux 一. Linux背景 1969−1970年,⻉尔实验室的DennisRitchie和KenTompson开发了Unix操作系统. 他…

链动2+1芸众商城421+全插件独立版源码

芸众商城最新全插件421个,去授权 源码全开源链动21商城小程序 这套版本插件全部都是新版本,并非外面那种老版本 老插件全部都不能用的,一堆bug问题,我们插件源码是直接打官方授权源码所以都是最新的,还有很多小程序前…

three.js 使用geojson ,实现中国地图区域,边缘流动效果

three.js 使用geojson ,实现中国地图区域,边缘流动效果 在线链接:https://threehub.cn/#/codeMirror?navigationThreeJS&classifyexpand&idgeoBorder 国内站点预览:http://threehub.cn github地址: https://github.co…

android openGL ES详解——混合

一、混合概念 混合是一种常用的技巧,通常可以用来实现半透明。但其实它也是十分灵活的,你可以通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象。混合是什么呢?混合就是把两种颜色混在一起。具体一点,就…

Java线程池的几个重要核心参数

一、corePoolSize(核心线程数) 含义:线程池中始终保持存活的线程数量。作用:当有新任务提交时,如果线程池中线程数量小于核心线程数,会创建新线程来执行任务。即使这些线程处于空闲状态,它们也…

03 django管理系统 - 部门管理 - 部门列表

部门管理 首先我们需要在models里定义Dept类 # 创建部门表 class Dept(models.Model):name models.CharField(max_length100)head models.CharField(max_length100)phone models.CharField(max_length15)email models.EmailField()address models.CharField(max_length2…