公司手机网站设计,购物帮做特惠的网站,深圳网站建设外贸,属于网站seo分析什么软件前言
由于网站注册入口容易被黑客攻击#xff0c;存在如下安全问题#xff1a;
暴力破解密码#xff0c;造成用户信息泄露短信盗刷的安全问题#xff0c;影响业务及导致用户投诉带来经济损失#xff0c;尤其是后付费客户#xff0c;风险巨大#xff0c;造成亏损无底洞…前言
由于网站注册入口容易被黑客攻击存在如下安全问题
暴力破解密码造成用户信息泄露短信盗刷的安全问题影响业务及导致用户投诉带来经济损失尤其是后付费客户风险巨大造成亏损无底洞 所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案 但在机器学习能力提高的当下连百度这样的大厂都遭受攻击导致点名批评 图形验证及交互验证方式的安全性到底如何 请看具体分析
一、 齐家网PC 注册入口
简介齐家网成立于2007年创始人邓华金员工超1000人。2018年7月12日,齐家网母公司齐屹科技成功登陆港交所主板股票代码1739.HK。 自成立以来齐家网秉承“用户为先”理念以提升行业效率和用户极致体验为己任不断创新发展深度打造融合线上线下的家装新模式为家装用户提供更低价格、更高品质和更好服务的装修解决方案, 是用户在互联网寻求家装服务的优选平台。 齐家网业务涵盖家装平台、自营装修业务、齐家特许经营网络、供应链等多个子生态。目前齐家网已经建立了一个蓬勃发展的生态体系聚集超过7500家优质装修服务商。 二丶 安全分析
采用传统的图形验证码方式具体为4个数字英文,ocr 识别率在 95% 以上。 测试方法 采用模拟器OCR识别
1. 模拟器交互
private static String INDEX_URL https://passport.jia.com/cas/login?servicehttps://i.jia.com/app_id500;Overridepublic RetEntity send(WebDriver driver, String areaCode, String phone) {RetEntity retEntity new RetEntity();try {driver.get(INDEX_URL);driver.findElement(By.xpath(//a[classagree_yes])).click();// 1 输入手机号WebElement phoneElemet ChromeDriverManager.waitElement(driver, By.id(partnerPhone), 1);phoneElemet.sendKeys(phone);// 获取验证码WebElement sendElement driver.findElement(By.id(smsSendButton));sendElement.click();// 同意并继续Thread.sleep(1 * 1000);driver.findElement(By.xpath(//a[classyes])).click();// 2 获取图形验证码Thread.sleep(1 * 1000);String imgCode null, imgUrl;byte[] imgByte null;WebElement imgElement driver.findElement(By.id(captchaImage));for (int i 0; i 3; i) {imgUrl imgElement.getAttribute(src);imgByte (imgUrl ! null) ? GetImage.callJsByUrl(driver, imgUrl) : null;int len (imgByte ! null) ? imgByte.length : 0;imgCode (len 0) ? ddddOcr.getImgCode(imgByte) : null;boolean rcode (imgCode ! null imgCode.length() 4) ? DigitFormat.isRcode(imgCode) : false;if (rcode)break;imgElement.click();Thread.sleep(1 * 1000);}if (imgCode null || imgCode.length() 4) {System.out.println(imgCode imgCode);return retEntity;}// 3 输入识别出来的图形验证码WebElement codeInputElement driver.findElement(By.id(smsCaptcha));codeInputElement.sendKeys(imgCode);// 4 点击下一步Thread.sleep(1 * 1000);WebElement getCodeElement ChromeDriverManager.waitElement(driver, By.xpath(//a[classsubmit]), 20);if (getCodeElement ! null) {getCodeElement.click();Thread.sleep(1 * 1000);}Thread.sleep(1500);String gtInfo sendElement.getText();retEntity.setMsg([imgCode: imgCode ]- gtInfo);if (gtInfo ! null gtInfo.contains(秒后重新发送)) {retEntity.setRet(0);ddddOcr.saveFile(Jia, imgCode, imgByte);return retEntity;} else {System.out.println(gtInfo gtInfo);ddddOcr.saveFile(Jia/err/, imgCode, imgByte);}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.heightimg.naturalHeight;c.widthimg.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. 测试返回结果 三 丶测试报告 四丶结语
齐家网成立于2007年创始人邓华金员工超1000人。2018年7月12日,齐家网母公司齐屹科技成功登陆港交所主板股票代码1739.HK。 自成立以来齐家网秉承“用户为先”理念以提升行业效率和用户极致体验为己任不断创新发展深度打造融合线上线下的家装新模式为家装用户提供更低价格、更高品质和更好服务的装修解决方案, 是用户在互联网寻求家装服务的优选平台。 齐家网业务涵盖家装平台、自营装修业务、齐家特许经营网络、供应链等多个子生态。目前齐家网已经建立了一个蓬勃发展的生态体系聚集超过7500家优质装修服务商作为头部的家装无提供商 技术实力也应该不错但采用的还是老一代的图形验证码已经落伍了 用户体验一般容易被破解 一旦被国际黑客发起攻击将会对老百姓形成骚扰影响声誉。 很多人在短信服务刚开始建设的阶段可能不会在安全方面考虑太多理由有很多。 比如“ 需求这么赶当然是先实现功能啊 ”“ 业务量很小啦系统就这么点人用不怕的 ” “ 我们怎么会被盯上呢不可能的 ”等等。 有一些理由虽然有道理但是该来的总是会来的。前期欠下来的债总是要还的。越早还问题就越小损失就越低。 所以大家在安全方面还是要重视。血淋淋的栗子#安全短信# 戳这里→康康你手机号在过多少网站注册过
谷歌图形验证码在AI 面前已经形同虚设所以谷歌宣布退出验证码服务 那么当所有的图形验证码都被破解时大家又该如何做好防御呢
相关阅读 《腾讯防水墙滑动拼图验证码》 《百度旋转图片验证码》 《网易易盾滑动拼图验证码》 《顶象区域面积点选验证码》 《顶象滑动拼图验证码》 《极验滑动拼图验证码》 《使用深度学习来破解 captcha 验证码》 《验证码终结者-基于CNNBLSTMCTC的训练部署套件》