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

广州市门户网站建设品牌阿里巴巴国际站费用

广州市门户网站建设品牌,阿里巴巴国际站费用,wordpress相关推荐最新代码,邢台网站建设服务商前言 由于网站注册入口容易被黑客攻击#xff0c;存在如下安全问题#xff1a; 暴力破解密码#xff0c;造成用户信息泄露短信盗刷的安全问题#xff0c;影响业务及导致用户投诉带来经济损失#xff0c;尤其是后付费客户#xff0c;风险巨大#xff0c;造成亏损无底洞 …前言 由于网站注册入口容易被黑客攻击存在如下安全问题 暴力破解密码造成用户信息泄露短信盗刷的安全问题影响业务及导致用户投诉带来经济损失尤其是后付费客户风险巨大造成亏损无底洞 所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案 但在机器学习能力提高的当下连百度这样的大厂都遭受攻击导致点名批评 图形验证及交互验证方式的安全性到底如何 请看具体分析 一、 爱空间 PC 注册入口 简介爱空间2014年创立 [1]在中国大陆地区的14个主要城市设有分公司及家装体验馆员工规模近7,000人。 [57]爱空间致力于通过科技创新建设以“供应链、信息化系统、产业化工人”三大基础设施为支柱的标准化一站式整体家装解决方案。先后获得顺为资本、国美资本数亿元投资通过让消费者安全放心的儿童级环保标准、33天准时完工的品效合一、100%直管施工团队等颠覆性创新模式成为家装行业口碑最好的企业之一。 [47]2020年提出“让爱有空间让空间有爱”的全新企业使命。 二、 安全性分析报告 采用极验的 V1版本knob容易被模拟器绕过甚至逆向后暴力攻击滑动拼图识别率在 95% 以上。 三、 测试方法 前端界面分析 采用的是极验1.0 最早的一个版本 最大特点就是将图片做分割后在前端再做合并这就好办了 网上有大量现成的逆向文章及视频参考不过我们这次不用逆向 只是采用模拟器的方式关键点主要模拟器交互、距离识别和轨道算法3部分。 模拟器交互部分 public RetEntity send(WebDriver driver, String areaCode, String phone) {try {driver.get(smsUrl);// 输入手机号WebElement phoneInput driver.findElement(By.name(mobile));phoneInput.clear();for (int i 0, l phone.length(); i l; i) {phoneInput.sendKeys(String.valueOf(phone.charAt(i)));phoneInput.click();}Thread.sleep(500);// 点击发送验证码WebElement sendBtn GeeSplitApi.waitForLoad(driver, By.className(sendSMS), 5);sendBtn.click();geetApi.gtSliderKnob(driver, 0);return null;} catch (Exception e) {System.out.println(e.toString());return null;}} 获取滑动图片及调用移动交互 public boolean gtSliderKnob(WebDriver driver, Integer offSet) {try {// 获取滑动按钮By moveBy By.cssSelector([classgt_slider_knob gt_show]);GeetSplitApi.waitForLoad(driver, moveBy);WebElement moveElement driver.findElement(moveBy);int i 0;String gtInfo;while (i 3) {try {// 获取滑动距离int distance GeetSplitApi.getMoveDistance(driver);if (distance 0) {gtInfo get distance err;continue;}// 滑动if (offSet ! null)ActionMove.move(driver, moveElement, distance - offSet);elseActionMove.move(driver, moveElement, distance);// 滑动结果Thread.sleep(2 * 1000);By gtInfoBy By.className(gt_info_content);gtInfo driver.findElement(gtInfoBy).getAttribute(innerHTML);System.out.println();if (gtInfo.isEmpty() || gtInfo.contains(速度超过)) {return true;} else if (gtInfo.contains(出现错误)) {gtInfo no success,try time 3;continue;}} catch (Exception e) {continue;}}return false;} catch (Exception e) {System.out.println(getAndMove() e.toString());logger.error(e.toString());return false;}} 2. 距离识别 /*** 计算需要平移的距离* * param fullImgPath* 完整背景图片文件名* param bgImgPath含有缺口背景图片文件名* return* throws IOException*/public static int getMoveDistance(String fullImgPath, String bgImgPath) {System.out.println(fullImgPath fullImgPath);File fullFile new File(fullImgPath);File bgFile new File(bgImgPath);boolean fullExists fullFile.exists();boolean bgExists bgFile.exists();if (fullExists bgExists) {String abPath bgFile.getAbsolutePath();int l abPath.lastIndexOf(.);String out abPath.substring(0, l) -o abPath.substring(l);return getComareImg(fullFile, bgFile, out);} else {System.out.println(fullExists( fullImgPath ) fullExists \nbgExists( bgImgPath ) bgExists);return -1;}}/*** 计算需要平移的距离* * param driver* param fullImgPath完整背景图片文件名* param bgImgPath含有缺口背景图片文件名* return* throws IOException*/private static int getComareImg(Object fullObj, Object bgObj, String out) {System.out.println(getComareImg() begin);try {if (fullObj null || bgObj null) {return -1;}BufferedImage fullBI (fullObj instanceof File) ? ImageIO.read((File) fullObj) : ImageIO.read((ByteArrayInputStream) fullObj);BufferedImage bgBI (bgObj instanceof File) ? ImageIO.read((File) bgObj) : ImageIO.read((ByteArrayInputStream) bgObj);ListInteger list;Color ca, cb;MapInteger, ListInteger xMap new TreeMapInteger, ListInteger();// 将头35列的最大不同值取出 作为右边图像的基础差Long tifTotl 0L;int tifLeft 0;int tifCount 0;for (int i 0; i bgBI.getWidth(); i) {for (int j 0; j bgBI.getHeight(); j) {ca new Color(fullBI.getRGB(i, j));cb new Color(bgBI.getRGB(i, j));int diff diff(ca, cb);if (i 35 tifLeft diff) {tifLeft (diff 255) ? 255 : diff;} else if (diff tifLeft) {tifTotl diff;tifCount;}}}Long tifAvg (tifCount 0) ? (tifTotl / tifCount) : 0L;if (tifLeft 0 tifAvg 2) {tifAvg tifAvg / 2;}for (int i 35; i bgBI.getWidth(); i) {for (int j 0; j bgBI.getHeight(); j) {ca new Color(fullBI.getRGB(i, j));cb new Color(bgBI.getRGB(i, j));int diff diff(ca, cb);if (diff tifAvg) {list xMap.get(i);if (list null) {list new ArrayListInteger();xMap.put(i, list);}list.add(j);xMap.put(i, list);}}}System.out.println( |--tifLeft tifLeft ,tifTotl tifTotl ,tifCount tifCount ,tifAvg tifAvg ,xMap.size xMap.size());int minX 0;int maxX 0;for (Integer x : xMap.keySet()) {list xMap.get(x);minX (minX 0) ? x : minX;maxX x;for (int y : list) {cb new Color(bgBI.getRGB(x, y));int gray (int) (0.3 * cb.getRed() 0.59 * cb.getGreen() 0.11 * cb.getBlue());bgBI.setRGB(x, y, gray);}}// 标记直线位置for (int y 0; y bgBI.getHeight(); y) {bgBI.setRGB(minX, y, Color.red.getRGB());}int width maxX - minX;File destFile new File(out);Thumbnails.of(bgBI).scale(1f).toFile(destFile);System.out.println( |---xMap.size xMap.size() minX minX ,maxX maxX ,width width);return minX;} catch (Exception e) {System.out.println(e.toString());for (StackTraceElement elment : e.getStackTrace()) {System.out.println(elment.toString());}logger.error(getMoveDistance() err e.toString());return 0;}}private static int diff(Color ca, Color cb) {int d Math.abs(ca.getRed() - cb.getRed()) Math.abs(ca.getGreen() - cb.getGreen()) Math.abs(ca.getBlue() - ca.getBlue());return d;}3. 轨道生成及移动算法 /*** 双轴轨道生成算法主要实现平滑加速和减速* * param distance* return*/public static ListInteger[] getXyTrack(int distance) {ListInteger[] track new ArrayListInteger[]();// 移动轨迹try {int a (int) (distance / 3.0) random.nextInt(10);int h 0, current 0;// 已经移动的距离BigDecimal midRate new BigDecimal(0.7 (random.nextInt(10) / 100.00)).setScale(4, BigDecimal.ROUND_HALF_UP);BigDecimal mid new BigDecimal(distance).multiply(midRate).setScale(0, BigDecimal.ROUND_HALF_UP);// 减速阈值BigDecimal move null;// 每次循环移动的距离ListInteger[] subList new ArrayListInteger[]();// 移动轨迹boolean plus true;Double t 0.18, v 0.00, v0;while (current distance) {h random.nextInt(2);if (current distance / 2) {h h * -1;}v0 v;v v0 a * t;move new BigDecimal(v0 * t 1 / 2 * a * t * t).setScale(4, BigDecimal.ROUND_HALF_UP);// 加速if (move.intValue() 1)move new BigDecimal(1L);if (plus) {track.add(new Integer[] { move.intValue(), h });} else {subList.add(0, new Integer[] { move.intValue(), h });}current move.intValue();if (plus current mid.intValue()) {plus false;move new BigDecimal(0L);v 0.00;}}track.addAll(subList);int bk current - distance;if (bk 0) {for (int i 0; i bk; i) {track.add(new Integer[] { -1, h });}}System.out.println(getMoveTrack( midRate ) a a ,distance distance - mid mid.intValue() size track.size());return track;} catch (Exception e) {System.out.print(e.toString());return null;}}/*** 模拟人工移动* * param driver* param element页面滑块* param distance需要移动距离* throws InterruptedException*/public static void move(WebDriver driver, WebElement element, int distance) throws InterruptedException {ListInteger[] track getXyTrack(distance);if (track null || track.size() 1) {System.out.println(move() track track);}int moveY, moveX;StringBuffer sb new StringBuffer();try {Actions actions new Actions(driver);actions.clickAndHold(element).perform();Thread.sleep(20);long begin, cost;Integer[] move;int sum 0;for (int i 0; i track.size(); i) {begin System.currentTimeMillis();move track.get(i);moveX move[0];sum moveX;moveY move[1];if (moveX 0) {if (sb.length() 0) {sb.append(,);}sb.append(moveX);}actions.moveByOffset(moveX, moveY).perform();cost System.currentTimeMillis() - begin;if (cost 3) {Thread.sleep(3 - cost);}}if (sb.length() 0) {System.out.println(-----backspace[ sb.toString() ]sum sum ,distance distance);}Thread.sleep(180);actions.release(element).perform();Thread.sleep(500);} catch (Exception e) {StringBuffer er new StringBuffer(move() e.toString() \n);for (StackTraceElement elment : e.getStackTrace())er.append(elment.toString() \n);logger.error(er.toString());System.out.println(er.toString());}}图片比对结果测试样例 四丶结语 爱空间作为房屋装修行业的巨头 采用的是通俗的滑动验证产品 在一定程度上提高了用户体验 不过随着图形识别技术及机器学习能力的提升所以在网上破解的文章和教学视频也是大量存在并且经过验证的确有效 所以除了滑动验证方式 花样百出的产品层出不穷但本质就是牺牲用户体验来提高安全。 很多人在短信服务刚开始建设的阶段可能不会在安全方面考虑太多理由有很多。 比如“ 需求这么赶当然是先实现功能啊 ”“ 业务量很小啦系统就这么点人用不怕的 ” “ 我们怎么会被盯上呢不可能的 ”等等。 有一些理由虽然有道理但是该来的总是会来的。前期欠下来的债总是要还的。越早还问题就越小损失就越低。 所以大家在安全方面还是要重视。血淋淋的栗子#安全短信# 戳这里→康康你手机号在过多少网站注册过 谷歌图形验证码在AI 面前已经形同虚设所以谷歌宣布退出验证码服务 那么当所有的图形验证码都被破解时大家又该如何做好防御呢 相关阅读 《腾讯防水墙滑动拼图验证码》 《百度旋转图片验证码》 《网易易盾滑动拼图验证码》 《顶象区域面积点选验证码》 《顶象滑动拼图验证码》 《极验滑动拼图验证码》 《使用深度学习来破解 captcha 验证码》 《验证码终结者-基于CNNBLSTMCTC的训练部署套件》
http://www.w-s-a.com/news/866469/

相关文章:

  • 邢台专业做网站哪家好临沂网站建设中企动力
  • 建设网站是主营成本吗wordpress 后台
  • 猎头可以做单的网站企业网站建设
  • 建小程序需要网站吗在putty上怎样安装wordpress
  • 天津智能网站建设找哪家WordPress相册插件pro
  • 电脑网站页面怎么调大小济宁网站建设软件开发
  • 亿玛酷网站建设广州增城区最新消息
  • 企业网站视频栏目建设方案中企动力网站模板
  • 网站页面策划国外注册域名的网站
  • 百中搜如何做网站排名网站维护一年一般多少钱
  • 镇江地区做网站的公司wordpress说说加分类
  • 深圳高端网站设计免费的关键词优化软件
  • 视频网站公司沈阳网站建设服务
  • 网站全屏代码做网站必须用对方服务器
  • 网站速度慢wordpressssl正式申请后wordpress
  • 那个网站做玉石最专业西瓜创客少儿编程加盟
  • 备案时的网站建设方案书免费软件库
  • 惠州外贸网站建设网站模板 兼容ie8
  • 南京淄博网站建设方案php网站开发实训感想
  • 网站设计的含义只做恐怖片的网站
  • 网站改版方案ppt室内装修公司简介
  • 做色网站wordpress twenty ten
  • 马鞍山建设工程监督站建管处网站免费的海报模板网站
  • 类似百度的网站移动端的网站怎么做的
  • 网站开发需要什么文凭网站分析的优劣势
  • 海尔网站建设不足之处山东网站营销
  • 楚雄 网站建设广告设计一般人能学吗
  • 热搜榜排名前十山东seo多少钱
  • 衡水哪有建网站的吗企业信息系统英文
  • 有模板怎么建站wordpress媒体库图片路径