首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

补卡的糟糕经历引发的思考:一点黑客技术让我们不再泄露那么多数据

概述: 笔者因为孩子生病n次去医院输液,终于在最后一次打吊针的时候被人偷走了手机(医院果然是作案高发区),于是有了我补办手机卡的经历。一张电信手机卡在电信营业厅提供了身份证+照相人脸识别后顺利补办成功,另一张移动手机卡却遭遇了困境,移动要求身份证+服务密码+3个月内的任意5次拨出记录,但我的移动手机是备机+对外注册机(接收各种骚扰),3个月内也就拨出过极少的一两个电话,在丢失手机的情况下我根本不可能记得拨出的号码,而且如果想查通话记录必须手机的随机短信密码才可以,身份证+服务密码+本人也不行,这样我就陷入了

09

【翻译】电子邮件确认绕过并利用SSO导致向任何店主全面提升特权

通过绕过.myshopify.com中的电子邮件确认步骤来接管任何商店帐户。我找到了一种确认任意电子邮件的方法,并在* .myshopify.com中确认了任意电子邮件后,用户可以通过为所有商店设置主密码来将与其他共享相同电子邮件地址的Shopify商店进行集成。如果所有者以前没有集成过),则只需知道所有者的电子邮件地址即可有效地接管每个Shopify商店。在https://www.shopify.com/pricing中注册新的Shopify实例后 并开始免费试用,用户可以在确认用于注册的电子邮件地址之前将其电子邮件地址更改为新的电子邮件地址。问题是Shopify电子邮件系统错误地将新电子邮件地址的确认链接发送到用于注册的电子邮件地址。结果是用户可以确认任意电子邮件地址。下一步是利用SSO接管其他用户的Shopify实例。

02

在双因素身份认证领域混迹6年,聊聊我的见解

先简单聊点众所周知的,什么是双因素认证? 借用百科的描述: 双因素认证是一种采用时间同步技术的系统,采用了基于时间、事件和密钥三变量而产生的一次性密码来代替传统的静态密码。每个动态密码卡都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时动态密码卡与服务器分别根据同样的密钥,同样的随机参数(时间、事件)和同样的算法计算了认证的动态密码,从而确保密码的一致性,从而实现了用户的认证。因每次认证时的随机参数不同,所以每次产生的动态密码也不同。由于每次计算时参数的随机性保证了每次密码的不可预测性,从而在最基本的

02

JQuery 隐藏和显示html元素

$(function(){ $("#bubmitBtn").click(function(){ //首先需要把提示标签全部隐藏掉 $("#nameInvalid").hide(); $("#emailInvalid").hide(); $("#pwdInvalid1").hide(); $("#pwdInvalid2").hide(); //检查用户名: 长度为6到12位, 只能输入数字和英文和下划线 //alert("--"); var $nameEle = $("#UcenterMember_account"); var reg = /^\w{6,12}$/; if(!reg.test($nameEle.val())) { $("#nameInvalid").text(" *用户名长度为6到12位, 只能输入数字和英文和下划线"); $("#nameInvalid").show(); //alert("用户名长度为6到12位, 只能输入数字和英文和下划线"); $nameEle[0].focus(); return false; } //邮箱格式必须正确, 可以不输入 var $emailEle = $("#UcenterMember_email"); reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if($emailEle.val()!="" && !reg.test($emailEle.val())) { $emailEle[0].focus(); $("#emailInvalid").text(" *邮箱格式不正确!"); $("#emailInvalid").show(); //alert("邮箱格式不正确!"); return false; } //检查密码: 长度为6位, 只能输入数字和英文 var $passwordEle = $("#UcenterMember_password1"); reg = /^[a-zA-Z0-9]{6,15}$/; if(!reg.test($passwordEle.val())) { $("#pwdInvalid1").text(" *密码的最低长度为6位, 只能输入数字和英文"); $("#pwdInvalid1").show(); //alert("密码的长度为6位, 只能输入数字和英文"); $passwordEle[0].focus(); return false; } //确认密码必须与密码相同 var $password2Ele= $("#UcenterMember_password2"); if($password2Ele.val()!=$passwordEle.val()) { $password2Ele[0].focus(); $("#pwdInvalid2").text(" *确认密码必须与密码相同"); $("#pwdInvalid2").show(); //alert("确认密码必须与密码相同"); } return true; }); });

05

C语言getchar的用法_getchar的用法

当我们执行以上程序,会一直读取字符并且换行,以下做出解释: 1、为什么会自动换行? 当我们在键盘上敲入a的时候,getchar并没有获取,而是在我们敲回车以后才会进行读取 这个时候我们输入的其实是两个字符 一个是’a’,另一个是’\n’ 2、如何中止这个程序? 输入Ctrl+Z进行中止,这个时候我们的输入会有EOF的标志 3、当我们进行输入的时候,真实的情况是什么样的? 当我们输入的时候并不是键盘直接到getchar,而是中间有一个输入缓冲区,getchar一直在等待缓冲区里的内容,正是有了缓冲区的存在,才会出现有1的问题 4、我们如何清空缓冲区以免对后续操作造成影响呢? 我们作出以下研讨:

03

微信扫码登陆原理

1、你用浏览器打开http://wx.qq.com的时候,微信给你随机分配了一个链接,【相当于给你开了间房,房号1024,注意,只给你房号,没给你钥匙】,用二维码包装着,并且设置了有效时间【10分钟你不进房间,就给你取消】。这里面没有用户什么事情,所以不存在UID(user ID),只是一个随机的字母和数字组合。 2、二维码的转码规则是统一的,所以意味着,只要是个二维码扫描软件,谁都能拿到这个链接,微信可以扫出来,我查查也可以扫出来。 3、所以拿到链接没有用,重要的是谁拿到链接,微信拿到了,就可以从微信客户端发一条信息给服务器,告诉服务器,现在是谁使用了某个链接,其他二维码扫描软件,不能和微信服务器通话,所以毫无价值。【你拿到了房号,就给酒店老板打个电话,说是我,老板就知道张三又来开房了,其他人没有老板电话,知道房号也没用】 4、这时候,在你刚打开的浏览器窗口里面,就知道并显示了你的信息,理论上可以直接打开聊天窗口,但是为了不突兀不尴尬,微信选择再让你在手机上做一个确认操作。【你站到你的房间门口了,老板也知道你是张三了,并且把你的那个好基友也放到了你房间里,但是谁知道你基友会在房间里干点啥?如果他正好弯腰在捡肥皂,这时候恰好你后面有人经过,房门大开大家尴尬不尴尬?所以还是老板考虑周到,他要你在电话里确认一下才给你开门,你大可以等后面没人了再开门进去】 5、好了,现在你可以进去好好享用你的基友了。

05
领券