wordpress搬家后台还是老网站,乐清网站推广,北京建设工程信息网人员库里的人怎么删除,wordpress cron api前言
由于网站注册入口容易被黑客攻击#xff0c;存在如下安全问题#xff1a;
暴力破解密码#xff0c;造成用户信息泄露短信盗刷的安全问题#xff0c;影响业务及导致用户投诉带来经济损失#xff0c;尤其是后付费客户#xff0c;风险巨大#xff0c;造成亏损无底洞…前言
由于网站注册入口容易被黑客攻击存在如下安全问题
暴力破解密码造成用户信息泄露短信盗刷的安全问题影响业务及导致用户投诉带来经济损失尤其是后付费客户风险巨大造成亏损无底洞 所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案 但在机器学习能力提高的当下连百度这样的大厂都遭受攻击导致点名批评 图形验证及交互验证方式的安全性到底如何 请看具体分析
一、 简道云 PC 注册入口
简介帆软软件有限公司以下简称“帆软”成立于2006年是中国专业的大数据BI和分析平台提供商专注商业智能和数据分析领域致力于为全球企业提供一站式商业智能解决方案。 帆软在专业水准、组织规模、服务范围、企业客户数量上均为业内前列先后获得包括Gartner、IDC、CCID在内的众多专业咨询机构的认可。2023年销售额超14.6亿2018年-2023年连续多年入选中国大数据企业50强连续多年中国BI市场占有率第一。 二丶 安全分析
采用传统的图形验证码方式具体为4个数字英文,ocr 识别率在 95% 以上。该图形验证码个格式采用了SVG矢量图需要将矢量图处理成PNG格式后再进行识别 。 测试方法 采用模拟器OCR识别
1. 模拟器交互 private final String INDEX_URL https://www.jiandaoyun.com/register;Overridepublic RetEntity send(WebDriver driver, String areaCode, String phone) {try {RetEntity retEntity new RetEntity();driver.get(INDEX_URL);// 1 输入手机号Thread.sleep(100);WebElement phoneElemet ChromeDriverManager.waitElement(driver, By.xpath(//input[placeholder你的手机号]), 10);phoneElemet.sendKeys(phone);// 2 点击发送验证码按钮WebElement sendElemet driver.findElement(By.xpath(//button/span[contains(text(),获取验证码)]));sendElemet.click();// 3 判断是否已经发送Thread.sleep(1000);WebElement gtElemet ChromeDriverManager.waitElement(driver, By.xpath(//button/span[contains(text(),重新获取()]), 1);String gtInfo (gtElemet ! null) ? gtElemet.getText() : null;if (gtInfo ! null) {retEntity.setMsg(gtInfo);retEntity.setRet(0);return retEntity;}// 4 获取图形验证码String imgCode null;byte[] imgByte null;WebElement imgElement, confirmElement, errElement, inputElement;for (int i 0; i 3; i) {imgElement ChromeDriverManager.waitElement(driver, By.xpath(//div[contains(style,data:image/svgxml;charsetutf8,)]), 20);String cssValue (imgElement ! null) ? imgElement.getCssValue(background-image) : null;String imgUrl (cssValue ! null cssValue.contains(\)) ? cssValue.split(\)[1] : null;String imgBase64 URLDecoder.decode(imgUrl.substring(32), UTF-8);imgByte svgTbyte(imgBase64);// 将SVG字符串转换为字节数组int len (imgByte ! null) ? imgByte.length : 0;imgCode (len 0) ? ddddOcr.getImgCode(imgByte) : null;if (imgCode ! null) {// 5 输入识别出来的图形验证码inputElement driver.findElement(By.xpath(//input[placeholder图片验证码]));inputElement.clear();inputElement.sendKeys(Keys.CONTROL a);inputElement.sendKeys(Keys.DELETE);inputElement.sendKeys(imgCode);// 6 点击确认confirmElement driver.findElement(By.xpath(//button/span[text()确定]));confirmElement.click();}// 7 判断是否已经发送Thread.sleep(1000);gtElemet ChromeDriverManager.waitElement(driver, By.xpath(//button/span[contains(text(),重新获取()]), 1);gtInfo (gtElemet ! null) ? gtElemet.getText() : null;if (gtInfo ! null) {break;} else {errElement ChromeDriverManager.waitElement(driver, By.className(captcha-error-msg), 10);String errInfo (errElement ! null) ? errElement.getText() : null;}imgElement.click();Thread.sleep(1000);}retEntity.setMsg([imgCode: imgCode ]- gtInfo);if (gtInfo ! null gtInfo.contains(重新获取()) {retEntity.setRet(0);ddddOcr.saveFile(this.getClass().getSimpleName(), imgCode, imgByte);} 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();}}// 将SVG 转为PNG格式private byte[] svgTbyte(String imgBase64) {// 创建DocumentBuilderFactorytry {DocumentBuilderFactory factory DocumentBuilderFactory.newInstance();DocumentBuilder builder factory.newDocumentBuilder();Document document builder.parse(new java.io.ByteArrayInputStream(imgBase64.getBytes()));// 序列化SVG为字符串TransformerFactory transformerFactory TransformerFactory.newInstance();Transformer transformer transformerFactory.newTransformer();transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, yes);transformer.setOutputProperty(OutputKeys.INDENT, yes);StringWriter writer new StringWriter();transformer.transform(new DOMSource(document), new StreamResult(writer));String svgContent writer.getBuffer().toString();// 使用TranscoderInput将SVG转换为PNG字节数组PNGTranscoder transcoder new PNGTranscoder();TranscoderInput input new TranscoderInput(new ByteArrayInputStream(svgContent.getBytes()));ByteArrayOutputStream pngOutputStream new ByteArrayOutputStream();TranscoderOutput output new TranscoderOutput(pngOutputStream);transcoder.transcode(input, output);// 获取PNG字节数组byte[] pngBytes pngOutputStream.toByteArray();return pngBytes;} catch (Exception e) {return null;}}
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. 测试返回结果 三 丶测试报告 四丶结语
帆软软件有限公司以下简称“帆软”成立于2006年是中国专业的大数据BI和分析平台提供商专注商业智能和数据分析领域致力于为全球企业提供一站式商业智能解决方案。 帆软在专业水准、组织规模、服务范围、企业客户数量上均为业内前列先后获得包括Gartner、IDC、CCID在内的众多专业咨询机构的认可。2023年销售额超14.6亿2018年-2023年连续多年入选中国大数据企业50强连续多年中国BI市场占有率第一。作软件开发厂商 技术实力也应该不错但采用的还是老一代的图形验证码已经落伍了 用户体验一般容易被破解 一旦被国际黑客发起攻击将会对老百姓形成骚扰影响声誉。 很多人在短信服务刚开始建设的阶段可能不会在安全方面考虑太多理由有很多。 比如“ 需求这么赶当然是先实现功能啊 ”“ 业务量很小啦系统就这么点人用不怕的 ” “ 我们怎么会被盯上呢不可能的 ”等等。 有一些理由虽然有道理但是该来的总是会来的。前期欠下来的债总是要还的。越早还问题就越小损失就越低。 所以大家在安全方面还是要重视。血淋淋的栗子#安全短信# 戳这里→康康你手机号在过多少网站注册过
谷歌图形验证码在AI 面前已经形同虚设所以谷歌宣布退出验证码服务 那么当所有的图形验证码都被破解时大家又该如何做好防御呢
相关阅读 《腾讯防水墙滑动拼图验证码》 《百度旋转图片验证码》 《网易易盾滑动拼图验证码》 《顶象区域面积点选验证码》 《顶象滑动拼图验证码》 《极验滑动拼图验证码》 《使用深度学习来破解 captcha 验证码》 《验证码终结者-基于CNNBLSTMCTC的训练部署套件》 文章转载自: http://www.morning.hxlpm.cn.gov.cn.hxlpm.cn http://www.morning.kkdbz.cn.gov.cn.kkdbz.cn http://www.morning.jlpdc.cn.gov.cn.jlpdc.cn http://www.morning.wmmjw.cn.gov.cn.wmmjw.cn http://www.morning.crhd.cn.gov.cn.crhd.cn http://www.morning.tqwcm.cn.gov.cn.tqwcm.cn http://www.morning.rkqqf.cn.gov.cn.rkqqf.cn http://www.morning.tjndb.cn.gov.cn.tjndb.cn http://www.morning.wfhnz.cn.gov.cn.wfhnz.cn http://www.morning.nzkc.cn.gov.cn.nzkc.cn http://www.morning.rttkl.cn.gov.cn.rttkl.cn http://www.morning.lgnrl.cn.gov.cn.lgnrl.cn http://www.morning.jjzrh.cn.gov.cn.jjzrh.cn http://www.morning.lwxsy.cn.gov.cn.lwxsy.cn http://www.morning.nrjr.cn.gov.cn.nrjr.cn http://www.morning.yllym.cn.gov.cn.yllym.cn http://www.morning.knzmb.cn.gov.cn.knzmb.cn http://www.morning.shxrn.cn.gov.cn.shxrn.cn http://www.morning.mjtft.cn.gov.cn.mjtft.cn http://www.morning.zlnf.cn.gov.cn.zlnf.cn http://www.morning.kqzt.cn.gov.cn.kqzt.cn http://www.morning.lsqxh.cn.gov.cn.lsqxh.cn http://www.morning.rfrx.cn.gov.cn.rfrx.cn http://www.morning.skrh.cn.gov.cn.skrh.cn http://www.morning.srmdr.cn.gov.cn.srmdr.cn http://www.morning.zmpqt.cn.gov.cn.zmpqt.cn http://www.morning.xdjsx.cn.gov.cn.xdjsx.cn http://www.morning.ymrq.cn.gov.cn.ymrq.cn http://www.morning.thbkc.cn.gov.cn.thbkc.cn http://www.morning.ffptd.cn.gov.cn.ffptd.cn http://www.morning.klpwl.cn.gov.cn.klpwl.cn http://www.morning.kntsd.cn.gov.cn.kntsd.cn http://www.morning.nmhpq.cn.gov.cn.nmhpq.cn http://www.morning.jqllx.cn.gov.cn.jqllx.cn http://www.morning.kaweilu.com.gov.cn.kaweilu.com http://www.morning.kbqqn.cn.gov.cn.kbqqn.cn http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn http://www.morning.grpfj.cn.gov.cn.grpfj.cn http://www.morning.spdyl.cn.gov.cn.spdyl.cn http://www.morning.ylljn.cn.gov.cn.ylljn.cn http://www.morning.nkrmh.cn.gov.cn.nkrmh.cn http://www.morning.msbpb.cn.gov.cn.msbpb.cn http://www.morning.tnzwm.cn.gov.cn.tnzwm.cn http://www.morning.fmry.cn.gov.cn.fmry.cn http://www.morning.cflxx.cn.gov.cn.cflxx.cn http://www.morning.jbtzx.cn.gov.cn.jbtzx.cn http://www.morning.hrpbq.cn.gov.cn.hrpbq.cn http://www.morning.yydeq.cn.gov.cn.yydeq.cn http://www.morning.rnwt.cn.gov.cn.rnwt.cn http://www.morning.mldrd.cn.gov.cn.mldrd.cn http://www.morning.fwmln.cn.gov.cn.fwmln.cn http://www.morning.snlxb.cn.gov.cn.snlxb.cn http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn http://www.morning.qqhmg.cn.gov.cn.qqhmg.cn http://www.morning.nfsrs.cn.gov.cn.nfsrs.cn http://www.morning.frllr.cn.gov.cn.frllr.cn http://www.morning.jlboyuan.cn.gov.cn.jlboyuan.cn http://www.morning.mfmbn.cn.gov.cn.mfmbn.cn http://www.morning.yrhsg.cn.gov.cn.yrhsg.cn http://www.morning.swkzr.cn.gov.cn.swkzr.cn http://www.morning.gjssk.cn.gov.cn.gjssk.cn http://www.morning.rksnk.cn.gov.cn.rksnk.cn http://www.morning.cwqln.cn.gov.cn.cwqln.cn http://www.morning.hjlwt.cn.gov.cn.hjlwt.cn http://www.morning.rbkdg.cn.gov.cn.rbkdg.cn http://www.morning.kwqt.cn.gov.cn.kwqt.cn http://www.morning.yrhd.cn.gov.cn.yrhd.cn http://www.morning.kxqpm.cn.gov.cn.kxqpm.cn http://www.morning.wrdlf.cn.gov.cn.wrdlf.cn http://www.morning.xmnlc.cn.gov.cn.xmnlc.cn http://www.morning.zsfooo.com.gov.cn.zsfooo.com http://www.morning.rkqkb.cn.gov.cn.rkqkb.cn http://www.morning.kjrlp.cn.gov.cn.kjrlp.cn http://www.morning.cmrfl.cn.gov.cn.cmrfl.cn http://www.morning.fpngg.cn.gov.cn.fpngg.cn http://www.morning.qmrsf.cn.gov.cn.qmrsf.cn http://www.morning.cbczs.cn.gov.cn.cbczs.cn http://www.morning.lffrh.cn.gov.cn.lffrh.cn http://www.morning.rcfwr.cn.gov.cn.rcfwr.cn