给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
不同类型的数据在进行比较的时候,会自动进行类型转换。
例如:
var_dump(false == 0); var_dump(false == ‘’); var_dump(false == ‘0’); var_dump(0 == ‘0’); var_dump(0 == ‘0xxx’); var_dump(0 == ‘xxx’);
你觉得上面有正确的判断吗?
答案:以上判断式均为真。
在使用弱类型机制的时候需要特别留意以下几种比较,包括:Hash比较、bool比较、数字转换比较、switch比较以及数组比较。
02 Hash比较
哈希(Hash)用于将任意长度的输入通过散列算法变换成固定长度的输出,其特点就是很难找到逆向规律,使用Hash算法可以提高存储空间的利用率,可以提高数据的查询效率,也可以做数字签名来保障数据传递的安全性。所以Hash算法被广泛地应用在互联网应用中。
如果Hash值以0e开头,而后面都是数字,则在与数字进行比较时,就会被解析成 0×10 ,此时就会被判断与0相等,这就可以绕过某些逻辑判断。
例如:
var_dump(‘0e123456789’ == 0); // bool(true) var_dump(‘0e123456789’ == ‘0’); // bool(true)
要想解决这一问题,我们需要使用 hash_equals() 函数来进行比较,hash_equals() 是可以防止时序攻击的一种字符串比较方法。
在密码学中,时序攻击是一种侧信道攻击,攻击者试图通过分析加密算法的时间执行来推导出密码。每一个逻辑运算在计算机需要时间来执行,根据输入不同,精确测量执行时间,根据执行时间反推出密码。
例如:
不过需要注意的是 hash_equals() 函数在 PHP5.6 中才得到支持,如果软件版本过低,则需要自行定义实现代码。
var_dump(hash_equals(‘0e123456789’ ,‘0’)); // bool(false)
03 bool比较
当遇到非空字符串与布尔值发生比较时,系统会自动将非空字符串转换为 true,将空字符串转换为 false。
var_dump(true == ‘’); // bool(false) var_dump(true == ‘root’); // bool(true)
如果你在使用变量时,不注意这些数据类型,就会带来各种安全隐患,而且还很难发现。
建议使用三个等号(===)来判断变量值与类型是否完全相等。
var_dump(true === ‘’); // bool(false) var_dump(true === ‘root’); // bool(false)
… …
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!