一、安全事件
今年的脱裤时间比往年曝光的多,不代表过去就少,很可能你的密码早都泄漏了。
大部分人都是懒得设置不同的密码,如果每个帐号密码都独立肯定记不住也不好管理。
我也是一样,如果从服务的角度去分别设置密码就相对的可以坚固安全和易用
比如:1) 网银、支付等财务相关的关键服务不多可以每个设置不同的复杂密码,密码安全等级最高;
2) 其次是常用网站、工作相关,密码设置相对复杂,但是可以部分统一不用每个都不同;
3) 剩下的其他的就用极简单的密码即可,不留真实资料,反正丢了也无所谓的。
很多人都还没有意识到密码泄漏的严重性,如果是针对个人的持续深入跟踪和攻击,
你泄漏的密码虽然无关紧要,但是你留下的信息,你的习惯、爱好等确实很重要的,一旦被挖掘总结出来,后果也不看设想。
二、php大文件处理
说到社工库就不得不说各种在线查询和下载的,
下载下来的库基本都是文本格式,常见的方法是专用的大文件搜索工具来搜索
如果想整理入库整理成高效的web版,那就少不了大文件处理的需求了。
网上搜了一下大文件处理的方法,不少仿tail的对于社工库的需求没什么帮助
如: http://sjolzy.cn/php-large-file-read-operation.html
基本上就2个分支:fseek+fread块处理方式 和 fgets/stream_get_line行处理方式
1) 写入数据库
对于社工库的大文件写入数据库这种需求来说经测试stream_get_line效率最高
因为要逐行读取处理后入库,但是效率仍不理想
i7-2640M, 8G内存, SSD硬盘, xampp默认配置环境下测试(max-execution-time=30s, memory_limit=128M)
428M多玩只遍历所有行不处理, 读取长度4096字节, stream_get_line耗时13.85s, fgets耗时18.61s
读取长度可大可小, stream_get_line几乎没影响, fgets设置65535时会执行超时
2) 只搜索
先用做了个简单测试,还是多玩的库stream_get_line+preg_match搜索”/asdasd/i”找到后break while(!feof($h)),循环读2w+次,耗时0.29s
效果看起来还不错,然后故意测试了一个倒数第N行的字符串搜索”/BABYSWEET/”,结果就execute timeout了, ini_set(‘max_execution_time’, 60)后看到执行结果为53.05s, 这个测试结果有点失望。
然后用fseek+fread块搜索,设置块大小65535,搜索”/asdasd/i” 耗时0.007s,搜索”/BABYSWEET/”耗时0.68s。
在stackoverflow上看到一篇文章
据说用这个方法实现了 https://www.cuddlycactus.com/knownpasswords/ 94+ million passwords的搜索
每次fread一个length后文件指针移动length,这样就巧妙的实现了分段读取全部文件,传递给callback处理,并且是用指针形式,不会占用大量内存
实测搜索”/BABYSWEET/”效果,按65535大小分块读取,耗时2.4s,效果不如fseek+fread。
3) 总结
如果只搜索fseek+fread块方式处理效果杠杠的,
如果是需要逐行处理stream_get_line绝对不错,但是数量大的时候依然会出现timeout的情况
暂无评论