2024年网络安全最全PHP开发安全问题之弱数据类型的安全问题(1),2024年最新网络安全驱动面试

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值