当前位置: 首页 > news >正文

网站网页基本情况 网页栏目设置站长统计 wordpress

网站网页基本情况 网页栏目设置,站长统计 wordpress,福州微信网站建设,在哪里可以做自己的网站前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

前言

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

  1. 暴力破解密码,造成用户信息泄露
  2. 短信盗刷的安全问题,影响业务及导致用户投诉
  3. 带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞
    在这里插入图片描述
    所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案, 但在机器学习能力提高的当下,连百度这样的大厂都遭受攻击导致点名批评, 图形验证及交互验证方式的安全性到底如何? 请看具体分析

一、 孔夫子旧书网 PC 注册入口

简介:孔网创建于2002年,是大型的二手旧货、古旧图书和商品交易平台,是传统文化行业结合互联网而搭建的C2C平台,是有传统文化价值的旧货市场。网站主要板块是书店区和拍卖区。网站秉承“网罗天下图书,传承中华文明”的理念,致力于发掘、抢救、保护和传播中国传统文化资源。

在这里插入图片描述

在这里插入图片描述

二丶 安全分析:

采用传统的图形验证码方式,具体为6个数字及英文,ocr 识别率在 95% 以上。

测试方法:
采用模拟器+OCR识别

1. 模拟器交互

private static String INDEX_URL = "https://login.kongfz.com/register/index.html";@Overridepublic RetEntity send(WebDriver driver, String areaCode, String phone) {RetEntity retEntity = new RetEntity();try {driver.get(INDEX_URL);// 1 输入手机号WebElement phoneElemet = ChromeDriverManager.waitElement(driver, By.id("phone"), 1);phoneElemet.sendKeys(phone);// 2 获取图形验证码WebElement sendElement = driver.findElement(By.xpath("//a[contains(text(),'获取验证码')]"));sendElement.click();Thread.sleep(1 * 1000);WebElement imgElement = ChromeDriverManager.waitElement(driver, By.xpath("//li[@class='verityBox']/div/span/img[contains(@src,'/Pc/ajax/showSimpleCaptcha')]"), 20);sendElement = (imgElement == null) ? ChromeDriverManager.waitElement(driver, By.xpath("//a[contains(text(),'获取验证码')]"), 10) : null;if (sendElement != null) {sendElement.click();Thread.sleep(1500);WebElement gtElement = ChromeDriverManager.waitElement(driver, By.xpath("//a[contains(text(),'秒后可重发')]"), 10);String gtInfo = (gtElement != null) ? gtElement.getText() : null;if (gtInfo != null && gtInfo.contains("秒后可重发")) {retEntity.setMsg("[无感验证通过]->" + gtInfo);retEntity.setRet(0);return retEntity;}}if (imgElement == null) {return null;}System.currentTimeMillis();imgElement.click();Thread.sleep(1000);String imgCode = null, picUrl;byte[] imgByte = null;for (int i = 0; i < 3; i++) {System.currentTimeMillis();picUrl = imgElement.getAttribute("src");imgByte = (picUrl != null) ? GetImage.callJsByUrl(driver, picUrl) : null;imgCode = ddddOcr.getImgCode(imgByte);if (imgCode != null && imgCode.length() >= 6) {ddddOcr.saveFile("KongFz/", imgCode, imgByte);break;} else if (imgCode != null && imgCode.contains("=")) {System.out.println("算术运算");return null;}imgElement.click();Thread.sleep(1 * 1000);}if (imgCode == null || imgCode.length() < 1) {return null;}// 3 输入识别出来的图形验证码WebElement codeInputElement = driver.findElement(By.id("verity"));codeInputElement.sendKeys(imgCode);Thread.sleep(1 * 1000);sendElement = ChromeDriverManager.waitElement(driver, By.xpath("//a[contains(text(),'获取验证码')]"), 10);if (sendElement != null) {sendElement.click();Thread.sleep(2 * 1000);}WebElement gtElement = ChromeDriverManager.waitElement(driver, By.xpath("//a[contains(text(),'秒后可重发')]"), 10);if (gtElement == null) {WebElement errElement = ChromeDriverManager.waitElement(driver, By.xpath("//span[@class='red' and contains(text(),'短信发送太快')]"), 10);String errInfo = (errElement != null) ? errElement.getText() : null;if (errInfo != null) {retEntity.setMsg("[imgCode:" + imgCode + "]->" + errInfo);String lateTime = DigitFormat.getDigit(errInfo);System.out.println(errInfo + "->sleep " + lateTime);Thread.sleep(Integer.parseInt(lateTime) * 1000);return retEntity;}}String gtInfo = (gtElement != null) ? gtElement.getText() : null;retEntity.setMsg("[imgCode:" + imgCode + "]->" + gtInfo);if (gtInfo != null && gtInfo.contains("秒后可重发")) {retEntity.setRet(0);}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 {if (driver != null)driver.manage().deleteAllCookies();}}

2. 获取图形验证码


public static byte[] callJsById(WebDriver driver, String id) {return callJsById(driver, id, null);}public static byte[] callJsById(WebDriver driver, String id, StringBuffer base64) {String js = "let c = document.createElement('canvas');let ctx = c.getContext('2d');";js += "let img = document.getElementById('" + id + "'); /*找到图片*/ ";js += "c.height=img.naturalHeight;c.width=img.naturalWidth;";js += "ctx.drawImage(img, 0, 0,img.naturalWidth, img.naturalHeight);";js += "let base64String = c.toDataURL();return base64String;";String src = ((JavascriptExecutor) driver).executeScript(js).toString();String base64Str = src.substring(src.indexOf(",") + 1);if (base64 != null) {base64.append(base64Str);}byte[] vBytes = (base64Str != null) ? imgStrToByte(base64Str) : null;return vBytes;}

3.图形验证码识别(Ddddocr)


public String getImgCode(byte[] bigImage) {try {if (ddddUrl == null) {System.out.println("ddddUrl=" + ddddUrl);return null;}long time = (new Date()).getTime();HttpURLConnection con = null;String boundary = "----------" + String.valueOf(time);String boundarybytesString = "\r\n--" + boundary + "\r\n";OutputStream out = null;URL u = new URL(ddddUrl);con = (HttpURLConnection) u.openConnection();con.setRequestMethod("POST");con.setConnectTimeout(10000);con.setReadTimeout(10000);con.setDoOutput(true);con.setDoInput(true);con.setUseCaches(true);con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);out = con.getOutputStream();if (bigImage != null && bigImage.length > 0) {out.write(boundarybytesString.getBytes("UTF-8"));String paramString = "Content-Disposition: form-data; name=\"image\"; filename=\"" + "bigNxt.gif" + "\"\r\n";paramString += "Content-Type: application/octet-stream\r\n\r\n";out.write(paramString.getBytes("UTF-8"));out.write(bigImage);}String tailer = "\r\n--" + boundary + "--\r\n";out.write(tailer.getBytes("UTF-8"));out.flush();out.close();StringBuffer buffer = new StringBuffer();BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));String temp;while ((temp = br.readLine()) != null) {buffer.append(temp);}String ret = buffer.toString();if (ret.length() < 1) {System.out.println("ddddUrl=" + ddddUrl + " ret=" + buffer.toString());}return buffer.toString();} catch (Throwable e) {logger.error("ddddUrl=" + ddddUrl + ",e=" + e.toString());return null;}}public void saveFile(String factory, String imgCode, byte[] imgByte) {try {String basePath = ConstTable.codePath + factory + "/";File ocrFile = new File(basePath + imgCode + ".png");FileUtils.writeByteArrayToFile(ocrFile, imgByte);} catch (Exception e) {logger.error("saveFile() " + e.toString());}}

4. 图形OCR识别结果:

在这里插入图片描述

5. 测试返回结果:

在这里插入图片描述

三 丶测试报告 :

在这里插入图片描述

四丶结语

孔夫子网简称孔网,创建于2002年,是大型的二手旧货、古旧图书和商品交易平台,是传统文化行业结合互联网而搭建的C2C平台,是有传统文化价值的旧货市场。网站主要板块是书店区和拍卖区。网站秉承“网罗天下图书,传承中华文明”的理念,致力于发掘、抢救、保护和传播中国传统文化资源。作为旧古书二手市场平台的“独角兽”企业, 技术实力也应该不错,但采用的还是老一代的图形验证码已经落伍了, 用户体验一般,容易被破解, 一旦被国际黑客发起攻击,将会对老百姓形成骚扰,影响声誉。

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

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

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

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

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

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

http://www.yayakq.cn/news/313286/

相关文章:

  • 四川省建设厅网站首页微信上发的链接网站怎么做的
  • 昆山做网站公司哪家好网站站内搜索制作
  • 重庆网站设计开发wordpress重装之后
  • 学校网站建设可行性分析青州哪里做网站
  • asp做购物网站中国建设银行安徽分行网站
  • 金华义乌网站建设虹口免费网站制作
  • 进口外贸网站有哪些汕头网站专业制作
  • 泊头做网站价格微信公众号排名前十
  • 嵩明建设局网站网站后台有哪些
  • 一分钟做网站微官网和移动网站区别吗
  • nodejs做网站外贸网站推广平台排名
  • 百度做网站的费用app store官方正版下载
  • vc6.0做网站ps做网站首页导航栏
  • 北京手机网站制作公司济南网站优化小黑
  • seo和网站建设那个先学网页游戏魔域永恒魔石
  • 网站设计目的怎么写ip网站怎么做
  • 网站用什么做快递系统查询网站怎么做
  • 怎么弄免费的php空间做网站做的网站上更改内容改怎么回事
  • 网站建设的总结与评价做电商有哪些网站有哪些
  • 监理网站深圳市创想三维科技有限公司
  • 做网站需要有公司吗营销策划主要做些什么
  • 杭州企业网站建设哪家好诺诚建设工程有限公司网站
  • seo是做网站seo优化内容
  • 门户网站建设评标办法建站需要会哪些语言
  • 长沙网站设计哪家专业wordpress装饰模板排名
  • 中小企业网站建设调研报告作文网址
  • 响应式品牌网站南昌做网站费用
  • 个人建购物网站怎么备案国家企业年报申报入口官网
  • 怎么备份wordpress网站十种人不适合学建筑
  • wordpress vr主题佛山企业网站优化