「漏洞」“查找我的手机”应用漏洞使三星手机用户遭黑客攻击

近日据外媒报道,一位研究人员在三星手机“发现我的手机”应用程序中发现了多个漏洞,这些漏洞可能已经被黑客链接在一起,以在三星Galaxy手机上执行各种恶意活动。

据悉,“查找我的手机”功能使三星设备的所有者可以找到丢失的手机,还可以远程锁定设备,阻止对三星支付的访问并彻底擦除设备的内容。近日,来自葡萄牙的网络安全服务提供商Char49的安全研究团队Pedro Umbelino在三星的“发现我的手机”应用程序中发现了多个漏洞,这些漏洞可以让黑客在三星Galaxy 手机上执行各种恶意活动。

研究人员称:“ Find My Mobile软件包中存在多个漏洞,最终可能导致智能手机用户完全丢失数据,恢复出厂设置,以及被实行实时位置跟踪,电话和短信检索等。”

Char49研究人员在“查找我的手机”组件中一共发现了四个漏洞,这些漏洞可以被仅安装在设备SD卡上的设备上安装的恶意应用所利用。黑客通过访问设备的SD卡,应用程序可以触发攻击链中的第一个漏洞,然后创建一个文件,攻击者使用该文件来拦截与后端服务器的通信。成功利用此漏洞将使恶意应用能够执行“查找我的手机”应用所允许的相同操作,包括强制恢复出厂设置,擦除数据,定位设备,访问电话和消息以及锁定和解锁电话。

虽然目前,三星解决了这些漏洞,但是专家还表示:“漏洞利用链可在未安装补丁的三星Galaxy S7,S8和S9 +设备上运行。此漏洞是很容易被黑客利用的,并可能对用户造成灾难性影响。”

「转」虚假机场网站大量浮现! FBI向航空旅客发出网络安全警告

据了解,美国网络监督特工康纳尔·惠特恩(Conal Whetten)周三在新闻界发表讲话时表示,人们需要提高对虚假机场网站的辨别能力。惠特恩还表示,随着网络犯罪分子不断提高其网站模仿能力,这些虚假的域变得越来越复杂,黑客们通过建立一个看起来带有组织徽标,字体,配色方案和书写风格的恶意域欺骗用户,使用户认为他们位于真实可靠的网站上,这对于对旅行者,机场和整个航空业构成了真正的威胁。

对于黑客的此类行为,惠特恩表示:“他们这样做是为了窃取用户和企业数据,同时美国机场网络是一个诱人的目标,因为有丰富的企业和个人信息会在机场官网上出现。”黑客在创建具有相似外观的恶意网站时,域名实际上与它们所模仿的站点相同,通常只是更改了一个字符,这种细微的差异并不容易被用户发现。

根据惠特恩的说法,犯罪分子创建了这些伪造的域,以传播能够危害用户的个人或企业数据的恶意软件,此数据被盗可能最终导致用户的身份盗用和经济损失。

通过虚假订票网站,黑客可以利用用户的社交媒体列表来欺骗他们的朋友和家人,甚至从在线网站进行欺诈性消费由受害者承担费用。据悉,一旦用户在虚假网站上预订了机票,黑客威胁就不会停止。网络参与者可以通过创建欺骗域和Wi-Fi网络来利用这一领域,从而欺骗旅客和机场运营商与恶意网站或电子邮件进行交互。

对于此类虚假网站大量出现的现象,网络安全专家建议用户禁用或删除所有不必要的软件协议和门户,并在可能的情况下使用多因素身份验证。 最后,惠特恩在描述这种特定的网络犯罪有多普遍时表示:“超过96%的公司遭受一种或多种此类形式的域名欺骗攻击。”

转自:www.easyaq.com

【黑客】推特史上最大安全事故:奥巴马、马斯克公开索要比特币!FBI已介入调查

昨天恐怕是Twitter上上下下有史以来最忙乱的一天。

美西时间7月15日中午12点,Twitter——全球最为著名的社交媒体平台,在无声无息中突然被黑客大规模攻击,安全防线全面崩溃。

在几分钟之内,区块链行业内能叫得上名字的大V和官推全部被盗,公开发出同一条文字相同的推文,以慈善的名义向人索要比特币。被“强行乞讨”的官推包括币安、Gemini、Coinbase、Kucoin、Bitfinex、Tron、Bitcoin.org,以及有影响力的个人账号Charlie Lee、 孙宇晨等等等等。

部分被盗账号截图,图片来自engadget

除了币圈的人之外,就连包括美国前总统奥巴马,下一届美国总统竞选人拜登、说唱歌手侃爷,特斯拉CEO马斯克,亚马逊CEO贝佐斯,以及Apple 和Uber 的官方推特等在内的知名账号都纷纷发出了「我!名人!打钱!懂?」的信息。

黑客利用奥巴马的Twitter演戏,图片来自网络

黑客的戏也演得挺全,甚至以奥巴马的身份,在那条诈骗推文下面留言:“已经发了4万美金咯!”

截止目前为止,该诈骗账户已经产生了370余笔交易,总计诈骗金额已经达到12万美元。

目前,Twitter已经开始对黑客展开调查,而由于涉及到重要政治人物,美国联邦调查局(FBI)也已经对黑客的身份展开调查。FBI的介入说明此次事件已经上升到国家安全层面。

在Twitter上骗比特币也太容易了

此次黑客攻击事件,是 Twitter 公司历史上最严重的一次安全事件。无论Twitter公司的危机公关部门之后如何解释这件事,都无法将责任从自己身上洗下去。并且这种安全事故早在几年前就已经发生过。

从 2018 年开始,就有骗子冒充科技大佬及知名加密货币爱好者伊隆 · 马斯克(Elon Musk)。他们使用马斯克的头像,选择一个相似的用户名,然后发布一条仿佛天上掉馅饼一般的推文:借给我一些加密货币,我会还你更多。

此次事件发布的信息与2018年高度相似(此为本次事件截图)

这些骗子甚至会去马斯克的名下企业官推回复消息,例如去SpaceX回复消息,好让假账户看上去更真实。骗子还会通过水军散播虚假推文,也是为了增加真实性。这种【高仿号】诈骗的行为居然在Twitter上持续了数天之久。

尽管Twitter后来封禁了这些高仿号,但根据《独立报》在2018年11月的一份报告中显示,2018年在Twitter上冒充马斯克的诈骗者已经骗取了价值数十万美元的比特币。

而对于这次的事件,美国著名科技记者尼克 · 斯塔特(Nick Statt)表示:“这些知名大公司的官推和名人们的账号,都被卷入了这场Twitter史上最大的黑客攻击事件中,发布比特币诈骗信息。并且从美国东部时间下午4点开始发布诈骗推文直到5点45分这一个多小时中,Twitter始终没有做出任何回应和措施,大部分受害者也正是在这一个多小时中跌进诈骗陷阱的。”

两小时后 Twitter 简单地表示:公司已经禁用了认证账户的发推功能,或者已经重置了他们的密码,同时公司正在努力调查攻击的根本原因。

但是就在 Twitter 说明情况之前,许多用户已经发不出推文了。

Twitter对于此次事件的回应,图片来自Twitter截图

2018 年和这次的事件让人们看清楚了三件事。第一,总会有人上当受骗,每一次有人上当受骗,都会让其他诈骗者看到其中的巨大利益;第二,Twitter 对这种安全事件的处理缓慢,远不及该公司一早许下的会严肃对待这些问题的承诺;第三,Twitter的安全政策和技术手段往往是在诈骗事件发生后才制定实施的,这种做法几乎等于【亡羊补牢】。

既然事情已经发生,那么搞清楚黑客使用什么方式盗取用户账户密码才是最关键的事情。

大面积的盗号,黑客真的只为了骗钱?

根据《Vice》杂志的安全记者约瑟夫 · 考克斯(Joseph Cox)的报道,地下黑客社区的成员之间分享的屏幕截图显示,有人可以访问 Twitter 内部用于管理账户的工具。

考克斯表示:“有两名地下黑客社区的网友向媒体提供了一个内部控制面板的屏幕截图,称Twitter 的员工就是使用这个内部控制面板管理账户。” 而一名消息人士称,Twitter 的这个控制面板是用来更改某些账户的所有权。目前,Twitter 已经删除了这些控制面板的截图,并以【内容违反社区规则】封禁了发布这些截图的账户。”

根据考斯克的说法,这次安全事故并不是一次简单的黑客攻击。根据他的猜测,此次Twitter被攻击有可能存在两种情况:1.黑客成功破解了Twitter的用户管理系统;2.Twitter公司内部出现了内鬼,他利用职权盗取大V的账号并牟取私利。

图片来自The Verge

而根据Twitter公司说法,公司的安全人员检测到了一种协同式社交工程攻击。黑客成功锁定了一些具有访问内部系统和工具权限的员工,并通过社交工程攻击的方式盗取了他们电脑中的文件和权限。

那么什么又是社交工程攻击呢?

首先,攻击者会冒充客服人员通过电话或电子邮件的方式与攻击对象取得联系。建立信任关系之后,再以客服的身份将被攻击者的注册邮箱更改为属于攻击者的邮箱地址,再将密码重置的邮件发送到新的地址中取得用户的密码。经过以上几个步骤,攻击者便完全掌握了账号信息。

若黑客有政治性目的,那后果会十分严重,图片来自网络

而黑客只要不通过Twitter发送任何诈骗信息的话,用户就永远不会知道账号密码已经被黑客获取了。这就意味着黑客完全可以在收集了大量的账号后,在一个特定的时间节点集中发送推文,从而制造大规模的事件。

至少从这次事件来看,是这样的。并且Twitter对这次事件的处理不力,还有可能将此次事件的影响扩大。

虽然此次黑客入侵的动机和来源尚不清楚,但合作入侵世界领导人、名人和大公司已认证账户的做法令人恐惧。Twitter已经成为全球最大社交媒体之一,许多医疗和服务机构都通过Twitter来发布信息。例如,伊利诺伊州林肯国家气象局在认证账户被禁言前,刚刚发布了一条龙卷风警告。那些依赖这个账号了解龙卷风后续情况的用户们,这下可能要倒霉了。

两条推特中间相差三个小时,图片来自Twitter截图

想象一下,假设是带着某种政治意图的人控制了这些账号,那么极有可能会导致国际误会。并且现在距离美国大选已经不到四个月的时间了,这样大规模的黑客攻击无疑让人们开始恐惧更加严重的后果。

同时,虽然Twitter公司在事件之后封禁所有认证账户的发推权限是不得已而为之,但这种方法仍然需要商榷。

避免同类事件?加强监管才是硬道理

作为成功的社交软件,人们可以在Twitter自由自在的发表自己的言论和看法,但是频繁出现的安全事件,只会让人们对社交平台的信任越来越低,最终导致用户流失。

可是,这样的事件就无法做出有效的预警和避免吗?答案是否定的,在言论自由的现代社会,社交平台作为各种信息的集散点,也应该担起属于自己的责任。

小探认为,如果要避免同类事件的发生,Twitter至少需要改善以下三点。

首先,平台下场监督任何金钱活动。在认证账号发布任何涉及金钱的抽奖、返利活动时,需要官方平台监督发布者根据既定的规则进行公平抽取并公示。并且建立相对完备和快速的申诉渠道,这样就能避免活动发起者不发奖的出现。

Twitter应该严格监督任何与金钱来往有关的推文,图片来The Verge

其次,完善且反应迅速的审核和预警机制。在一个合格的社交网络中,用户能自由自在的上传和发表自己的内容和看法。但是在言论自由的情况下,对重要信息的审核就尤为重要。而在今年的疫情期间,Twitter在审核消息方面的成果就显得非常失败,比如对于注射消毒液就能杀死新冠这样的谣言。

虽然当时许多用户发推讽刺这种说法并配上『佯装注射』的图片,但这种类型的推文却没有被打上的风险标记,且官方也未将专业卫生机构的辟谣信息置于该类信息搜索页的顶部,这就会让我一些医学常识匮乏的人信以为真,从而导致危险发生。

部分Twitter用户发推讽刺该说法,但页面中完全没有相应提示,图片来自Twitter截图

第三,对于相关政府账号的区别保管。如上面所说,有许多社会服务机构、政府机构、国家领导人等通过Twitter进行公告发布,而这些消息通常与社会民生和国际关系息息相关,保证这种类型账号的安全比其他类型的账号更为重要。那么,为了防止这类账号被盗而导致社会动荡甚至国际误会的产生,Twitter是否可以通过技术手段对这些账号进行特殊的保护或者设置特别的登录验证方式来保证账号的绝密性和安全性呢?

当然,上面的一切猜测都需要Twitter公司有所作为才能成为现实。而目前,我们只需要等Twitter对此次事件的细节公示和一个满意的答复。

图片来自网络

总之,无论平台做出怎样的防范措施,还是会有不法分子会通过各种各样的方式来进行诈骗。与其让平台列举出形形色色的管理条款,不如我们自己从一开始就擦亮眼睛,识别诈骗信息。

毕竟,最可怕的黑客,是我们贪婪的欲望;而最好的防御,就是抵抗欲望的坚强意志。

转自:硅谷洞察

再见,Eclipse…

刚刚看到了一篇文章,让我仿佛回到了10多年前,如果你对一下名称有感悟(Eclipse, IDEA, Java, jbuilder, netbean, myeclipse, Intellij, JetBrains, C++, python),请一起来吧……致 青春

来源:https://www.cnblogs.com/ouyida3/p/9901312.html

使用了eclipse10年之后,我终于投向了IDEA

最近,改用了idea,同事都说我投敌了。当然,这些同事都是和我一样的“老”程序员。不说毕业生,公司里的90后基本电脑都不会安装eclipse。

eclipse 的三足鼎立时期

开始我写Java程序,用的并不是eclipse,而是用的一款叫做jbuilder的工具。当时使用这个工具的时候,我已经觉得非常的好用,因为在此之前,我好像记得只是用个简单的文本工具来编辑。后来才发现,那些喜欢宣扬文本编辑器才能学会精通java的“高手”真的有点不敢恭维,至少于我,一个好的工具太重要了。

并没有过了多久,我发现一款叫做eclipse的工具,而且身边还越来越多,于是我决定试一试。尝试的最后,我发现实在是太好用了,他的界面变得更漂亮,而且里面的功能感觉就是为程序员量身定做的一样,最激动人心的功能是他竟然支持源源不断的插件,而且这个插件你还可以,自己来编写。

eclipse2001年由ibm创立,2003年就成立基金会,可惜国内嘛,在那个时代,总是要晚一些,而我更落后,直到07、08年才开始真正使用。《程序员》在06年还出了一起专题-Eclipse风暴。那时候,eclipse、jbuilder、netbean三足鼎立的局面,基本形成了。eclipse 称霸

再后来myeclipse出现了这个东西更加厉害,他集成了所有常用的插件,只要你一键安装完就啥也有了,基本上用它,你可以开发出java的任何东西。虽然他不是免费的。

慢慢的,jbuilder已经没什么人使用;而netbean不知道是不国内还是我圈子太窄,身边用的人总是很少,倒是在国外翻译的技术书里经常和eclipse一同出现。

重构的流行,让eclipse更受青睐。熊节在《重构》译本里推荐eclipse,后来我亲眼看了他使用eclipse纯键盘(基本不用鼠标)飞快的重构代码,有点傻了眼。后来背诵快捷键成了我的一项课题。

在接下来接近10年的日子里,就是他陪着我度过了漫长又有意思的编程生涯。虽然经常有人争论用简单版的eclipse好还是用丰富的myeclipse好,用丰富版的经常会嘲笑用简单的,什么都没有,什么插件都得重新来一遍,用简单版的又会鄙视使用丰富版的,什么插件都不会安装。我曾经见过有一个同事,使用的滚瓜烂熟,每一个插件在文件夹下叫什么名字应该删除哪些文件应该放在什么地方,应该增加哪些配置,怎么安装怎么卸载都倒背如流,随后我也慢慢学会了这招。再后来插件安装,已经不需要这么麻烦了,只需要在市场上搜索一下,点击一下安装就可以了。但是这些功能的改进并没有让他免除用户群慢慢转移的危机。

Intellij IDEA 横空出世

其实很久之前我就听说idea非常好用,说只要使用过后就不会在使用eclipse了。还说JetBrains这家公司怎么怎么懂得java程序员。但是,我实在找不到什么改变的理由,所以一直没有尝试使用。况且,我还需要开发c++、python,这些语言,eclipse都有完善相应的版本插件支持。

其实中间,我也不断地询问已经转向使用的同事,我问他究竟别/好像哪里?但是没有一个同事能够清晰的回答我这个问题。大部分的同事只是说就是很好用,你如果细细地问他好在哪儿,他却说不出来。还有一些同事确实列举了一些,他认为更为好用的功能,然后告诉我,然后我听完之后告诉他,其实这些功能eclipse也有。还有一个同事更搞笑,用了两个月了,说非常的好用,然后我叫他调大一些,字体让我看看,他竟然说不知道怎么调。这些遭遇实在让我想不出来什么要改变的理由。

但是上个星期出现了一个契机,就是公司主持了几个培训,不约而同的这几位培训,是都使用IDEA来培训,其实,工具的不同并没有太大的影响及对培训知识的吸收,但是我实在忍受不了我明明花了一个小时听培训,但是只听了55分钟的知识,剩余的5分钟关于工具的使用技巧也应该吸收过来。加上早就听说Robert C Martin也许从一个eclipse转向了这个工具,于是我决定我要改变一下了。

上周一是我改变的第一天,安装过程非常顺利,官网提供免费版和试用版,我当然毫不犹豫地选择的试用版,至于30天以后,咱们心照不宣,再说。安装过后当然是黑糊糊的一个界面,上面的所有按钮实在是非常的陌生,我使用的10年的那些快捷键发现全部不好使了,我甚至连怎么导入一个现有的工程都不会了。

我有点受不了了,我受不了的不是对新知识的学习与掌握,而是效率迅速降低20倍,甚至一百倍。没办法,一个一个问题百度吧。大概过去了半天到一天,神奇的事情发生了,我竟然不再想继续用eclipse了,甚至有点没有了IDEA,感觉更麻烦了。于是家接下来的四天,我越来越顺畅地开始编写我的代码了。

对于只是使用了五天的,我来说,我说的什么,其实都只是一个新手的废话,但是我还是喜欢总结一下。

eclipse和idea,哪个更好?

idea,个人觉得,确实比eclipse要更好,但是它的好处并不主要是多了哪些功能,从功能的多少数量上来说,他们俩其实是差不多的, IDEA,更优秀的关键点在于他在细节上更为人性化,做得更优秀而已。

比如配置tomcat,我竟然不用百度,自己尝试点点,就成功跑起来了。感觉它真的懂我的心一样。

开始使用的一些注意事项

如果你是刚开始编程,那就没什么关系,但是像我一样是用的eclipse很多年的老程序员,那么对快捷键一定是一个障碍,但是idea已经做了很人性化的设置,默认的快捷键可以一键改成eclipse的快捷键,但是我尝试了,确实改变了大部分,但并不是百分之百,所以我放弃了。

还有就是对工程和模块要理解好,以前的eclipse都是做工程的概念并没有模块的概念,所以你可以把很多的工程都导入进去,但是IDEA完全不一样,他只能导入一个工程,如果你要在导入另外一个工程,你必须新开一个界面,当然你不用担心耗费内存的问题,已经。优化好了,但是在一个工程里面你可以导入多个模块,其实这个更适合我们平常的开发,因为maven 就是模块化的配置。

tomcat的设置也非常人性化,注意的是,可以通过勾选tomcat实例,就可以一个tomcat多个工程使用了。当然,端口要不同,才能同时启动。

三个很常用的设置按钮

• Preperences

• Project structure

• Run configuration

常用的快捷键(mac)

• cmd+shift+f 全project或模块等查找某个字符串

• cmd+shift+o 查找文件

• cmd+0 查找类

• cmd+f 本文件中查找字符串

• cmd+x 删除一行

• cmd+c 选中该行并且复制

• alt+enter 自动提示错误修复

• ctrl+alt+h 显示调用该方法的方法

• cmd+7 显示该类的全部方法

• cmd+alt+l 整理代码格式

• ctrl+alt+o 整理import

• shift+f6 重构rename 还有很多。。。基本都和eclipse不同,但是我必须一个个的“寻找”回来。

我喜欢的特色功能

• idea默认下面显示了teminal,很好用,现在我很少用mac自带的终端(虽然eclipse找找也有,但实在不好用)

• 右手边有个数据库连接,我现在也很少用Navicat和mysql workbench了

• 同样右边的maven也很好用,不像eclipse要右键,而且默认的还不齐全

JetBrains确实是伟大的公司,现在我弄js,也用了它的webstorm,弄python也用了他的pycharm而不是eclipse的pydev了。

再见,eclipse。

又断断续续用了一周,发现没有想象中完美。偶尔有些卡,毕竟太多东西放内存。而且也出现过闪退。快捷键实在有些还记不住,有个快捷键要按四个键太难记了。有些个别功能感觉还是有点不如eclipse方便比如改字符集(也可能我不熟悉)。断点调试也还不习惯。也有很多功能真的要把eclipse彻底忘记,比如重构rename,idea默认竟然把同名的都rename掉。我重构个我自己写的类的get方法,它把map.get的get也rename掉了,真的有点无语。不过习惯就好,总比漏了一些rename自己慢慢改好。

———-  END  ———-

全球诈骗案件已屡次得逞之AI软件克隆你的声音

就在不久前于旧金山结束的RSA大会上,一家名为Pindrop的专门检测语音诈骗的初创公司再次向业内发出警告:网络诈骗份子已经开始借助AI软件克隆声音进行诈骗了!

科技从来都是具有两面性的,中国古代的智者早已阐述过。

知识说明:

AI是什么?

人工智能(英語:Artificial Intelligence,縮寫為AI)亦稱智械、機器智能,指由人製造出來的機器所表現出來的智能。通常人工智能是指透過普通電腦程式來呈現人類智能的技術。該詞也指出研究這樣的智能系統是否能夠實現,以及如何實現。同時,通過醫學、神經科學、機器人學及統計學等的進步,常態預測則認為人類的無數職業也逐漸被其取代。

(Pindrop的CEO(右)和CTO(左),图片来自网络)

Pindrop的CEO Vijay Balasubramaniyan表示:“Pindrop在过去一年中调查了大约十二起类似的案件,都是欺诈者使用AI软件“克隆”某人的声音以进行诈骗。同时,我们还看到了Deepfake音频作为针对公众人物的工具出现。如果你是家公司的CEO或者你在YouTube上有很多视频,骗子就极有可能用它来合成你的声音。”

并且,虽然Pindrop只看到了少数这样的案件,但涉案金额很高。Pindrop估算涉及的诈骗金额可能高达1700万美元。

(图片来自网络)

来自硅谷的警告消息又一次将AI的安全性问题带到了舆论的风口浪尖。毫无疑问,自从AI成为全球技术发展的主流以来,DeepFake的问题就一直是人们关心的重点。而今天我们要讨论的AI语音合成的问题,则可能比人脸识别更加危险。

AI声音合成,一面“天使”一面“魔鬼”

语音合成技术现在已经非常成熟了。例如高德导航里的各种明星语音包,“林志玲为您导航祝您好心情”、“郭德纲前方有落石车碎人心碎”、“你镇定一下罗永浩要开始导航了”,基本上能够达到以假乱真的效果。大部分时候用户也分不出来到底是明星自己录的,还是合成的语音。当然这种场景中,语音合成只是为了提升用户体验做的一个小功能。不仅没有对用户造成损失,反而让用户开车的时候拥有更好的体验。

(高德地图的明星导航语音包,图片来自网络)

但是下面这个故事就不是这样了。2018年Charlie Warzel,Buzzfeed的科技记者,受了前密西根大学社交媒体责任中心CTO Aviv Ovadya言论的影响,做了一件想想都非常后怕的事情。他使用AI合成软件模仿了自己的声音,然后打电话给他妈妈,结果他妈妈愣是没听出来。世界上最熟悉你自己声音的人是谁?可能不是你自己,因为你自己听到的声音和别人听到的是有区别的。最熟悉你声音肯定是你的母亲。

(图片来自网络)

既然身边最熟悉的人都被这样“伪装”骗了,那只要使用这种软件不就拥有了“变身”的超能力了吗?

事实上,利用AI语音合成冒充熟人进行电信诈骗的案例这几年时常发生,并且涉及金额都非常的巨大。

根据《华尔街日报》2019年报道,英国某能源公司高管在一个小时之内通过匈牙利供应商向一诈骗犯转账24万美元,约175万元人民币,仅仅是因为诈骗犯通过AI技术仿造了其母公司CEO的声音。该高管表示,在整个通话过程中,老板轻微的德国口音都展现得淋漓尽致,该高管完全没有任何的怀疑,直到被要求再次转账时才发觉了事件异常。

在报案调查后,警方只能发现该笔转账流动到了墨西哥等地区,但是具体嫌疑犯的身份始终无法确定。这个案件带来的损失目前只能由保险公司承担。这位受害者后来在一封电子邮件中写道,虽然“老板”的要求相当奇怪,但声音如此逼真,他觉得自己别无选择,只能服从。

美国网络安全公司Symantec的研究人员表示,他们发现至少有三起公司高管的声音被人模仿以用于电信诈骗。虽然Symantec拒绝透露这些受害公司的名称,也不愿透露上述英国能源公司是否是其中之一,但它指出,其中一起案件的损失总计达数百万美元。

(Symabtec公司大楼,图片来自网络)

虽然有种种风险,但技术的发展一点也没有慢下来。目前,许多硅谷巨头和人工智能初创企业都在开发这种语音合成软件,用以模仿人的声音节奏和语调,并被用来制作令人信服的演讲。

(Lyrebird 官网)

几个月前,Resemble团队发布了一个名为Resemblyzer的开源工具,该工具使用人工智能和机器学习来通过获取语音样本的高级表示并预测它们是真实的还是生成的来检测深度伪造。而在AI语音合成届早已成名已久的Lyrebird,其开发出的AI合成软件更是可以在合成语音中模拟出说话人的感情。

AI技术被滥用,它的工作原理是什么?

无数的研究表明,重现人们讲话的韵律只需要一个小的数据集。像Resemble和Lyrebird这样的商业系统仅需要几分钟的音频样本,而百度最新的Deep Voice实现等复杂的模型可以从3.7秒的样本中复制语音。

斯坦福大学网络政策中心研究员、曾任奥巴马和特朗普政府时期白宫网络安全政策高级主管的Andrew Grotto(安德鲁·格罗托)表示:“罪犯将使用任何能让他们以最低成本实现目标的工具。也许这是一项在10年前听起来很新奇的技术,但是现在任何有想法的非专业罪犯都可以使用。” 

(图片来自网络)

目前市面上的AI语音合成软件的工作原理是将一个人的声音分解成不同的组成部分,比如音轨或音节,然后将这些组成部分重新排列,形成具有相似语音模式、音调和音色的新语音。除了借助这种新技术,骗子们还依赖于最常见的诈骗技巧来提高他们的效率,利用时间压力,比如临近的截止日期,或者社会压力,比如安抚老板的愿望,来让受害人打消任何疑虑。在某些情况下,犯罪分子会瞄准公司会计或财务的负责人,因为他们知道这些人有能力立即汇款。

(Pindrop的CEO演示如何合成公众人物的视频截图)

视频链接https://www.youtube.com/watch?v=PDs8-Exx6kE&feature=youtu.be

除了进行诈骗,DeepFake音频还存在向公众传递负面信息的风险。RSA大会演讲现场,Pindrop的CEO向公众演示了一款合成公众人物声音的AI系统,这项技术通过在网上搜索特朗普之前的录音来模仿他的声音,耗时不到一分钟,并用美国总统特朗普的声音说了一些笑话。如果这项技术被用于仿造领导人物的声音,并用到犯罪事件中,无疑可能非常危险,甚至给国家安全带来危害。

AI声音合成如此猖獗,应该如何防范?

虽然风险重重,但语音模拟技术的发展势不可挡。例如,Google已经为自动识别DeepFake语音的研究项目提供了资金和资源的帮助。但Google也开发了一些世界上最具说服力的语音人工智能,包括它的Duplex服务,它可以用电脑生成的栩栩如生的声音,打电话给餐厅预定座位。

(Google语音助手,图片来自网络)

卡内基国际和平基金会(Carnegie Endowment for International Peace)硅谷办公室主任Charlotte Stanton则提醒业界:“在商业领域,人们有很强的的意愿想要制造出好的技术产品,但一定要平衡,避免它被用于非法途径。所以,研究人员在研发像AI语音合成技术这样强大的技术时需要更加谨慎,很明显,AI语音合成已经到了可以被滥用的地步。”

幸运的是,人工智能开发人员正在努力构建能够检测和打击Deepfake音频的解决方案。例如,Pindrop公司已经开发出一种人工智能算法,可以从DeepFake的音轨中辨别真实的语言。它是通过检查说话时单词的实际发音,以及这些发音是否与真实人类的说话模式相匹配,因为人类的声音无法像机器伪装那样标准和快速。

Pindrop还预测到,也许有一天音频安全服务会像数据安全服务一样有巨大的市场。该公司CEO表示:“会有一些公司建立检测这些安全漏洞的机制。如果网上出现了伪造的音频,那么这个机制就会开始保护你的声音数据。”

(Pindrop CEO Vijay Balasubramaniyan,图片来自网络)

除了Pindrop等小公司。硅谷科技巨头也积极的致力于寻找检测Deepfake音频的方案。例如,谷歌在去年年初与GNI合作,发布了一系列合成语音,其中包含由其深入学习的文本到语音(TTS)模型所说的数千个短语,来自英文报纸文章68种不同的合成语音,并涵盖了各种区域口音。该数据库提供给了2019 ASVspoof挑战的参与者使用,该竞赛旨在开发针对假语音的对策,特别是可以创建区分真实和计算机生成的语音的系统。

同时,DeepFake音频的潜在威胁也可能会改变用户的行为,使用户在向互联网上传声音时更加谨慎。Pindrop调查的诈骗案例中就有这样一位受害者,他几乎没有在任何社交平台上公开过自己的声音,仅仅是因为召集员工开会时的讲话被窃取,就成为了犯罪分子的目标。这样的案例不禁会让人联想:“既然这么谨慎的人都会存在被诈骗的风险,那么我们干脆就不要在公众平台上表露自己的任何生理特征,包括声音和长相。这实在太恐怖了!”

(图片来自网络)

不敢想象,如果我们的公众社交平台上面看不到任何超出文字以外的更生动的表达,那么几十年来的科技和信息发展不就白费了吗?这无疑是对多年来为人类科技文明进化做出贡献的科技工作者的侮辱。

参考链接:

https://www.pcmag.com/news/is-ai-enabled-voice-cloning-the-next-big-security-scam

Google releases synthetic speech database to help ‘deep fake’ audio detection research

https://www.washingtonpost.com/technology/2019/09/04/an-artificial-intelligence-first-voice-mimicking-software-reportedly-used-major-theft/

文章主要内容转自:硅谷洞察

IoT安全之一|你的网络安全吗之路由器

 

随着IoT(物联网)的发展,我们已经不知不觉的享受到它的便利,这其中的核心设备就是路由器,尤其是在这个特殊的日子里,全世界都暴露在IoT的控制之下。

那么什么是IoT呢?

以下定义来自维基百科

物联网(英语:Internet of Things[1],缩写IoT),又称IoT技术,是互联网、传统电信网等的信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络[2]。物联网一般为无线网,而由于每个人周围的设备可以达到一千至五千个,所以物联网可能要包含500兆至一千兆个物体。在物联网上,每个人都可以应用电子标签将真实的物体上网联结,在物联网上都可以查出它们的具体位置。通过物联网可以用中心计算机机器设备人员进行集中管理控制,也可以对家庭设备、汽车进行遥控,以及搜索位置、防止物品被盗等,类似自动化操控系统,同时透过收集这些小事物的数据,最后可以汇聚成大数据,包含重新设计道路以减少车祸、都市更新、灾害预测与犯罪防治、流行病控制等等社会的重大改变,实现物和物相联。

题外话:

很长时间以来,我一直在想,我所了解的知识很有限,但是很专业,而且很多知识是很少人知道的,作为少数派,本来就很难让你明白我所说的是什么?我又是一个能说善辩的我,当我用真心对待你,你却因为其它身为之物忽略的时候,我也选择忽略。

真心不会对我有什么损伤,只是时光白白流失了,我很难让一个陌生人,真正了解,我所提出的方案是经过多少心血才能够完成的,算了,言归正传

 

以下文章来源于物联网IoT安全 ,作者lmnn

该文章可以让我们了解路由器的一些基础知识,同时它不是安全的,注意:这里并没有讨论信号问题。

路由器漏洞分类

在过去的几年里,针对嵌入式设备的黑客攻击陆续进入人们的视线。2012年,黑客攻击了巴西的450万台DSL路由器,植入了恶意软件DNS Changer用以恶意劫持。2013年,安全网站也报道了一种针对嵌入式设备的新型蠕虫。此外,针对嵌入式设备攻击的黑客工具也逐步完善。

0x00 路由器密码破解漏洞

很多家用路由器都具有无线功能,开启Wi-Fi功能以后,电脑、手机等支持无线功能的设备可以通过密码认证的方式连接到路由器上网。据报告显示,99.2%的家用路由器用于给自己的路由器设置了Wi-Fi密码,没有设置密码的用户占比仅为0.8%。虽然大多数用户给路由器设置了密码,但他们仍有很多不良习惯。常见的Wi-Fi密码设置不良习惯包括:简单的数字组合;电话号码;生日等容易暴力破解或猜测的密码。

目前Wi-Fi最常见的加密认证方式有3中,分别是WPA、WPA2、WEP。当用户使用WPE一键加密功能时,攻击者最多只需实验11000次即可登录Wi-Fi。

密码被破解后,攻击者可以接入破解的网络上网,占用带宽,并可以继续进行路由器管理页面登录密码的破解,获取路由器最高管理权限等。

0x01 路由器web漏洞

家用路由器一般都带有web管理服务,使用者可以通过web管理界面进行路由器的管理和配置,如图所示:

SQL注入、命令执行、CSRF、XSS等针对web方面的攻击,不仅可以用在针对网站的攻击中,同样可以用在针对路由器的攻击中。

几乎所有的SOHO路由器都容易收到CSRF攻击。无线路由器有两个重要的密码:一个是Wi-Fi密码,主要是为了防止他人“蹭网”;另一个是路由器管理密码,主要是对路由器上网账号、Wi-Fi密码、DNS、联网设备进行管理设置。用户修改或重设路由器管理账号和密码的概率相当低,而CSRF漏洞正是利用这一点,通过认证绕过漏洞、弱密码、或者默认路由器管理密码登录,使攻击者可以像正常用户一样访问和修改路由器的任何设置。

控制路由器管理权限后,攻击者可以将用户访问正常网站的请求导向恶意站点、劫持用户流量、推送广告,甚至可以制作一个和被攻击网站一模一样的站点进行“钓鱼”,诱使用户输入支付密码,获取用户的网银账号、密码等信息。

0x02 路由器后门漏洞

根据CNCERT发布的《2013年我国互联网网络安全态势综述》显示,经CNVD分析验证,D-Link、Cisco、Linksys、Netgear、Tenda等多家厂商的路由器产品存在后门,黑客可由此直接控制路由器,进一步发起DNS劫持、窃取信息、网络钓鱼等攻击,直接威胁用户网上交易和数据存储的安全。

这里所谓的后门,并不是指黑客攻击路由器以后为了实现长久控制而留下的后门,而是指开发软件的程序员为了日后调试和检测方便,在软件中设置的一个超级管理权限。一般情况下,这个超级管理权限不容易被发现,而一旦被安全研究人员发现并公布,就意味着攻击者可以直接对路由器进行远程控制。

路由器是所有上网流量的管控设备,是网络的公共出口。路由器被黑客控制,意味着与网络有关的所有应用都可能被黑客控制。路由器带有后门,最主要的原因在于路由器厂商对安全问题重视不够。

0x03 路由器溢出漏洞

缓冲区溢出是一种高级攻击手段,也是一种常见且危险的漏洞,存在于各种操作系统和应用软件中。缓冲区溢出的利用攻击,常见表现为程序运行失败、系统假死、重新启动等。而更为严重的是,黑客可以利用它执行非授权指令,进而取得系统特权,从而进行各种非法操作。

路由器是一种嵌入式设备,可以看作一台小型计算机,在路由器上运行的程序会因为存在缓冲区溢出漏洞而遭到黑客攻击。黑客可以通过分析路由器系统及其允许的服务程序,进行大量的分析及模糊测试,发现缓冲区溢出漏洞,并利用其实现对路由器的远程控制。一旦得到路由器的控制权限,黑客可以修改路由器的任何配置信息,进行流量拦截和篡改,推送广告,甚至盗取用户重要信息等。

本文摘选自:《揭秘家用路由器0day漏洞挖掘技术》

 

Apple HomeKit的新专利UWB 超宽带技术

近日,美国专利局发布的名为「模块化墙体系统」的专利申请中,苹果打算通过利用室内的插座,固定装置和配件来做到这一点。

在专利中,电源插座内置处理器芯片,处理器控制两大模块,一个是电源模块,一个是通信模块。电源模块配置多个自主电源,可以根据远程命令打开或关闭。通信模块则可以与屋内的其他主机单元进行通信,从而在设备之间发送数据。

该插座还可以具有多个附件,例如使用多天线阵列与多个主机单元进行通信以计算通信数据的相位角,用作罗盘的磁力计以及用于检测方向的加速度计。

通过使用这些组件,它可以使建筑物的中央系统生成平面图,利用雷达,IEEE 802 通信协议,超声方法以及超宽频(UWB)无线电定位,就能确定每个插座相对的位置,并将它们分组到房间中以进行大规模控制。

UWB 超宽带技术,让插座自行判断附近智能手机,平板电脑和其他电子设备的位置,这样,未来的 HomeKit 可以根据用户所在的位置通过插口来控制物品。

HomeKit 需要所有设备都连接到中央网络,尽管它确实在设置中提供了一定程度的位置感知,但精细程度还不足以按房间来运行。

如果 HomeKit 能够更好地确定用户在建筑物内的位置,就能启用更多高级功能,例如当用户进入房间时打开房间中的灯或风扇。这是智能家居的发展目标之一。

利用UWBiPhone 11 iPhone 11 Pro 系列中的 U1 芯片可用来识别 AirDrop 接收者的精确位置,这只是应用场景的其中之一。 WiFi、蓝牙等传统室内定位技术路径相比,UWB 具备诸多优点,最主要的就是定位精度。UWB 能够将探测精度缩小至 10 厘米以内的范围,远超蓝牙 5.0 配合 Wi-Fi 所能达到的 1 米精度。

由于 UWB 采用的频率较高,频带也更宽,虽然传输距离有限,但它几乎不会对其它无线信号造成影响,且传输容量和速率更大,这也是为什么苹果会将 UWB 应用在 AirDrop 功能上。

同样,将 UWB 添加到插座不仅可以使插座相互通信并确定其在 3D 空间中的位置,还可以监测到附近 iPhone 的存在,从而实现精细的家庭定位功能。

当然,墙体单元不一定是电源插座。根据苹果的想法,嵌入墙体的元件还可以包括电灯开关、温度控制器以及其他具有相同传感器并固定在墙上的各种开关按钮。到那个时候,HomeKit 将掌握各个智能家居的分布图以及你在 HomeKit 分布系统中的位置,指挥各设备快速进入工作状态,成为家居系统的大脑,而 UWB 则是组成神经网络的重要一环。

摩卡:巧克力風味咖啡

拿鐵、卡布奇諾、摩卡差別比一比

来到匈牙利后,感受到了咖啡的魅力,最重要的是跟国内味道和效果不一样哦!

 

拿鐵、卡布奇諾、摩卡差別比一比
拿鐵、卡布奇諾、摩卡差別比一比

你知道拿鐵(Latte)、卡布奇諾(Cappuccino)、摩卡(Mocha)這三種咖啡的差別在哪裡嗎?打開咖啡館的Menu,或者站在點餐吧台前的時候,你是否曾經有過這樣的疑問,卻不敢問出口,只好隨便點了一種,或是永遠只點同一種呢?其實你並不孤單,這問題聽起來愚蠢,卻是很多人埋藏心底已久的大問號。以下我們就要一起來看看,究竟這三種咖啡有什麼不同。

 

都是「濃縮咖啡」加「牛奶」,差別在比例

標準的拿鐵、卡布奇諾、摩卡,都是由濃縮咖啡(espresso),加上蒸氣噴嘴加熱出的蒸氣牛奶(steamed milk)和奶泡做成的,三者的差別就在於咖啡和牛奶的比例,以及摩卡另外添加了熱巧克力

在黑咖啡中加入牛奶的做法,一開始是由維也納人柯奇斯基(Franz George Kolschitsky)在1683年發明的。當時戰敗的鄂圖曼土耳其帝國,在維也納留下了一批咖啡豆,讓咖啡慢慢在這個歐洲城市流行起來。然而黑咖啡的味道太苦,許多人不是很適應。為了讓咖啡更貼近一般大眾的口味,柯奇斯基試著在咖啡裡加入牛奶,創造出更為溫潤的口感,對腸胃的刺激也較低,沒想到就此一炮而紅。他的咖啡館大受歡迎,這種咖啡做法也延續至今。

 

都是「濃縮咖啡」加「牛奶」,差別在比例
都是「濃縮咖啡」加「牛奶」,差別在比例

 

拿鐵:牛奶是主角

拿鐵(Latte)在義大利文裡就是牛奶的意思,從名字就可以知道,拿鐵咖啡裡,牛奶才是主角。其標準的比例是1/6濃縮咖啡、4/6蒸氣牛奶、1/6奶泡,另外可以再添加榛果、肉桂、香草等不同風味。因為牛奶的比例較高,口感十分柔順,在一些歐式餐館甚至可用來當甜點。此外,咖啡表面的各式美麗拉花,也是一門值得欣賞的藝術

拿鐵:牛奶是主角
拿鐵:牛奶是主角

蒸氣牛奶和奶泡又有什麼差別呢?這兩者都是用咖啡機上的蒸氣噴嘴,打入高溫蒸氣將牛奶加熱的成果。蒸氣牛奶加溫的時間較短,打入的氣泡也較少,體積約只增加1/3,表面上看起來沒什麼氣泡;奶泡則需打入大量空氣,製造出均勻的氣泡,體積約會變成兩倍。

拿鐵在各國也有不同的做法,美式拿鐵只加奶泡,義式拿鐵只加牛奶,歐式拿鐵(也叫咖啡歐蕾,由法文Café au lait音譯而來,意思就是咖啡加牛奶)則是將咖啡與牛奶同時倒入杯中,讓兩者均勻地融合在一起。

 

卡布奇諾:咖啡是主角

卡布奇諾是20世紀初義大利人發明的咖啡做法,和拿鐵的不同之處就在於牛奶的量,其標準比例是均勻的三等份:1/3濃縮咖啡、1/3蒸氣牛奶、1/3奶泡。由於咖啡最後呈現的色澤,和聖方濟會修士的褐色斗篷Cappuccino十分相似,因此就取了和斗篷一樣的名字。

卡布奇諾:咖啡是主角
卡布奇諾:咖啡是主角

由於咖啡佔了較多比重,因此味道會比拿鐵更濃郁一些,對咖啡本身的品質也較為要求,一定要用濃縮咖啡才能呈現卡布奇諾的好味道。卡布奇諾也可加上肉桂粉、可可粉、檸檬柳橙果皮絲等等,以增添風味。

澳洲、紐西蘭常見的一種flat white咖啡,其比例和卡布奇諾類似,由1/3濃縮咖啡和2/3的細奶泡構成,較細緻的奶泡讓咖啡口感更為滑順。

 

摩卡:巧克力風味咖啡

摩卡原本是指一種具有巧克力香氣的咖啡豆,這種咖啡豆主要由葉門的沿海小鎮摩卡出產,因此就叫摩卡豆。現今一般指的摩卡咖啡,則是由2/5濃縮咖啡、2/5熱巧克力、1/5蒸氣牛奶為比例調製出的咖啡。

摩卡:巧克力風味咖啡
摩卡:巧克力風味咖啡

除了有巧克力的風味之外,摩卡咖啡中的濃縮咖啡含量比卡布奇諾還要高,味道也更為濃醇。有人會在摩卡咖啡裡添加一些酒類,如貝里詩奶酒、森布卡茴香酒(Sambuca)、咖啡酒等,讓咖啡又別有一番風味。

 

除了拿鐵、卡布奇諾、摩卡這三種基本款的咖啡牛奶,在拿鐵和卡布奇諾中加入熱巧克力或巧克力糖漿,就又多了摩卡拿鐵、摩卡奇諾兩種新口味。在義大利這個濃縮咖啡的創始國度,更有許多種不同比例的咖啡和牛奶組合,衍生出各種咖啡名稱和味道。看似簡單的咖啡加牛奶,學問可是不小。

看到這裡,你是否更有概念了呢?知道這三種咖啡的不同之後,下次點咖啡的時候,就能更有自信地說出你的選擇囉。

 

from: https://coffeehunter.tw/latte-mocha-cappuccino-difference/

如何将微信和WordPress关联起来

WordPress 自动使用文章ID作为别名(slug)

from:https://www.wpdaxue.com/wordpress-using-post-id-as-slug.html

最近有朋友一直在问:我使用固定链接结构是 %post_id% (ID),但是 WP User Frontend 这个前端用户中心插件要求必须设置为 %postname% (slug)才能使用,我不想改变以前的文章链接地址,该怎么办?

本文就是解决这个问题的,让 WordPress 自动使用文章ID作为别名(slug),也就是说,即使你设置为 %postname% 结构,仍旧可以自动生成 ID 结构的链接。或许你会说,修改固定链接结构后,原来的那些文章的链接变化了,怎么办?不用担心,照样可以解决!进入正题!

为了安全起见,请先备份网站的数据库,然后再按照下文操作!

更改固定链接结构

假设你原来的固定链接结构设置为 /%post_id%,现在你可以将它改为 /%postname% ,这时候你会发现,新建文章和老文章都使用文章标题作为别名

批量修改老文章的别名为ID

将下面的代码添加到网站根目录的 wp-config.php 的最底部,保存后访问一次网站首页(你将看到浏览器一直都在努力打开网页,不要急,耐心等待,直到网页真正打开,所需时间看文章数和网络情况而定)。网页打开后,删除刚刚添加到 wp-config.php 的代码!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
 * 批量更改旧文章的别名为ID
 * 使用方法:将代码添加到网站根目录的 wp-config.php 的最底部,访问一次网站首页,等页面打开后,再删除这些代码
 * https://www.wpdaxue.com/wordpress-using-post-id-as-slug.html
 */
// 添加一个变量来包容文章标题数组,防止重复操作
$slug_done = array();
// 查询所有文章
$posts = $wpdb->get_results( "
	SELECT
	`ID`,
	`post_title`
	FROM
	`" . $wpdb->posts . "`
	WHERE
	`post_type` = 'post'
	" );
// 输出文章
foreach( $posts AS $single ) {
	$this_slug = $single->ID;
	$slug_done[] = $this_slug;
    //  使用文章ID替换文章原来的别名
	$wpdb->query( "
		UPDATE
		`" . $wpdb->posts . "`
		SET
		`post_name` = '" . $this_slug . "'
		WHERE
		`ID` = '" . $single->ID . "'
		LIMIT 1
		" );
}

新文章自动使用ID作为别名

将下面的代码添加到主题的 functions.php ,新建的文章都会自动使用ID作为别名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
 * 新文章自动使用ID作为别名
 * 作用:即使你设置固定连接结构为 %postname% ,仍旧自动生成 ID 结构的链接
 * https://www.wpdaxue.com/wordpress-using-post-id-as-slug.html
 */
add_action( 'save_post', 'using_id_as_slug', 10, 2 );
function using_id_as_slug($post_id, $post){
	global $post_type;	if($post_type=='post'){ //只对文章生效		// 如果是文章的版本,不生效
		if (wp_is_post_revision($post_id))
			return false;
		// 取消挂载该函数,防止无限循环
		remove_action('save_post', 'using_id_as_slug' );
		// 使用文章ID作为文章的别名
		wp_update_post(array('ID' => $post_id, 'post_name' => $post_id ));
		// 重新挂载该函数
		add_action('save_post', 'using_id_as_slug' );
	}}

2013-10-19更新:添加文章类型判断,只对文章(post)生效,不会影响页面等其他类型

参考资料:

http://www.ryankessen.com/50/how-to-mass-change-article-slug-urls-in-wordpress/

http://wordpress.stackexchange.com/questions/51363/


 

 

如何将微信和WordPress关联起来

实现微信账号与WordPress账号的绑定

from:http://www.powerxing.com/wechat-account-link-to-wordpress/


 

WordPress上已经有不少能实现微信订阅号/公众号连接WordPress的插件,如微信公众订阅号插件、连接微信、微信机器人等,可以实现两者的内容同步,也可以自定义关键词回复,推送相关文章。

不过这类插件还没有实现的一个功能就是微信的账号跟WordPress账号的绑定,若用WordPress二次开发一些带有会员功能的公众号,往往需要以微信的账号(openid)作为WordPress的账号,这样在获取微信授权后,就可以直接实现登陆,省去用户再注册账号的繁琐步骤。

实现的流程很简单:

  1. 若用户未登陆,则引导用户访问微信oauth2授权页面,取得code
  2. 通过code换取网页授权access_token
  3. 返回access_token的同时已经返回了openid,通过openid就可以登陆了。
  4. 通常我们还需要用户的昵称头像等信息,因此用户首次访问时,需要再通过access_token获取基本信息,再通过这些基本信息创建一个WordPress用户。创建用户之后,以后的登陆只需要进行到第3步即可。

微信用户的信息获取查看官方API文档(http://mp.weixin.qq.com/wiki/index.php?title=网页授权获取用户基本信息)即可,通过使用WprdPress提供的函数,可以很方便的实现上述流程。

主要应用到了 PHP 的 cURL 来进行api的通信,然后通过 WordPress 函数 wp_insert_user() 创建新用户、函数 wp_set_current_user()wp_set_auth_cookie() 实现用户登陆。

PHP代码如下:

  1. function power_user_is_login() {
  2. $appID = ;
  3. $appsecret = ;
  4. $wechat_token = ; // 开发中心的token
  5.  
  6. // 排除跳转至oauth2的页面
  7. if ( strpos($_SERVER[“REQUEST_URI”], ‘wp-login.php’) !== false || strpos($_SERVER[“REQUEST_URI”], $wechat_token) !== false ) return;
  8.  
  9. if (!is_user_logged_in()) {
  10.  
  11. if ( isset($_GET[‘code’]) ) {
  12. $code = $_GET[‘code’];
  13. $url = ‘https://api.weixin.qq.com/sns/oauth2/access_token?appid=’.$appID.‘&secret=’.$appsecret.‘&code=’.$code.‘&grant_type=authorization_code’;
  14.  
  15. $ch = curl_init();
  16. curl_setopt($ch, CURLOPT_URL, $url);
  17. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  18. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  19. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  20. $json = curl_exec($ch);
  21. $json = json_decode($json);
  22.  
  23. if ( isset($json->errcode) ) {
  24. header(“Content-type: text/html; charset=utf-8”);
  25. echo ‘系统出错,获取用户信息失败,请重试’; exit();
  26. }
  27.  
  28. $access_token = $json->access_token;
  29. $openid = $json->openid;
  30.  
  31. if ( !username_exists($openid) ) {
  32. $url = ‘https://api.weixin.qq.com/sns/userinfo?access_token=’.$access_token.‘&openid=’.$openid.‘&lang=zh_CN’;
  33. curl_setopt($ch, CURLOPT_URL, $url);
  34. $json = curl_exec($ch);
  35. $json = json_decode($json);
  36.  
  37. if ( isset($json->errcode) ) {
  38. header(“Content-type: text/html; charset=utf-8”);
  39. echo ‘系统出错,获取用户基本信息失败,请重试’; exit();
  40. }
  41.  
  42. $avator = $json->headimgurl;
  43. if (!$avator) $avator = ;
  44. if (substr($avator, 2) == ‘/0’) {
  45. $avator = substr($avator, 0, 2).‘/132’;
  46. }
  47.  
  48. $userdata = array(
  49. ‘user_login’ => $openid,
  50. ‘display_name’ => $json->nickname,
  51. ‘user_url’ => $avator,
  52. ‘user_pass’ => NULL,
  53. );
  54.  
  55. $user_id = wp_insert_user( $userdata ) ;
  56.  
  57. //On success
  58. if( is_wp_error($user_id) ) {
  59. echo ‘系统出错,创建用户失败,请重试’; exit();
  60. }
  61.  
  62. }
  63.  
  64. $user = get_userdatabylogin($openid);
  65. $user_id = $user->ID;
  66.  
  67. wp_set_current_user($user_id, $openid);
  68. wp_set_auth_cookie($user_id);
  69.  
  70. curl_close($ch);
  71.  
  72. } else {
  73. $site_uri = site_url();
  74. $redirect_uri = urlencode($site_uri.$_SERVER[“REQUEST_URI”]);
  75. $scope = ‘snsapi_userinfo’;
  76. $url = ‘https://open.weixin.qq.com/connect/oauth2/authorize?appid=’.$appID.‘&redirect_uri=’.$redirect_uri.‘&response_type=code&scope=’.$scope.‘&state=login#wechat_redirect’;
  77.  
  78. header(“Location: “.$url);
  79. exit();
  80. }
  81. }
  82. }
  83.  
  84. add_action( ‘init’, ‘power_user_is_login’);
php

补充appid等信息,然后将代码复制到主题中的function.php中,用户未登陆时,访问任一页面则会跳转到微信oauth2页面。用户验证登陆成功后,会返回到该页面中。