常见的PHP漏洞 - 字符串与0比较是相等的、md5加密漏洞等等

本文详细介绍了PHP中常见的安全漏洞,包括md5加密漏洞(0e开头哈希值被视为相等及哈希碰撞问题)、is_numeric漏洞(可能导致SQL注入)、in_array漏洞(弱类型导致的类型转换问题)、switch漏洞(类型转换引发的误判)以及intval强转漏洞(字符串到整型转换的隐患)。这些漏洞揭示了PHP作为弱类型语言在处理特定情况时可能带来的风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

md5加密漏洞

比较哈希字符串的时候,php程序把每一个以“0x”开头的哈希值都解释为科学计数法0的多少次方,恒为0。

所以如果两个不同的密码经过哈希以后,其哈希值都是以“0e”开头的,那么php将会认为他们相同。

另外md5加密是有几率两个字符串不同,但是加密后的值是相同的情况,这种情况称为哈希碰撞。

<?php$str1 = 's878926199a';$str2 = 's214587387a'; echo json_encode([ 'md5_str1' => md5($str1), 'md5_str2' => md5($str2), 'bool' => md5($str1) == md5($str2)]);

结果两个值加密后竟然相等。

缺点你懂的,如果一个网站的某个用户密码加密后刚好是0e开头的,这个时候黑客过来破解,很容易就攻入了。

{
   md5_str1: "0e545993274517709034328855841020
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴国进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值