对用户的输入的数据进行安全验证

本文详细解析了PHP编程中常见的安全问题,包括全局变量误用、跨站脚本攻击、SQL注入等,并介绍了HMAC算法作为更安全的数据验证手段。文章提供了关于如何预防这些问题的实用建议,以及HMAC算法的实现细节。

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

1.常见错误

1.1全局变量

一个基本的错误就是没有合理的进行全局变量的初始化。最好是把php.ini中的配置‘register_globals’的值设置为off(从php4.2开始默认关闭)以便避免类似错误的发生,但你仍然要注意此类问题。

1.2跨站运行脚本

通过跨站运行脚本技术,一个攻击者可以在用户的浏览器端执行一些客户端脚本,例如JavaScript,然后盗取用户的cookies或者其他重要数据。

2.SQL注入

SQL注入是一种攻击者将恶意的代码提交到服务器的数据库中去的方法。

3.HMAC(鉴定信息的关键字散列)

HMAC被证明为强大的加密方式而且应该被用来代替简易的验证算法。HMAC算法使用一个加密的健值对明文进行双重散列处理。具体步骤如下:

1.如果键值的长度小于64字节(大部分散列算法使用的块长度),我们就用\0把健值扩展到64字节;如果键值的长度大于64字节,我们将首先使用散列函数处理健值,然后用\0把健值扩展到64字节。

2.我们构建opad(用0x5C异或的64字节的健值)和ipad(用0x36异或的64字节的健值)。

3.我们通过运行散列函数处理ipad.plain text 来创建一个“内部”的散列。(因为使用一个“迭代”的散列函数,比如md5()或者sha1(),我们无须把键值提供给散列函数,然后再运行散列函数处理我们的明文。在内部,散列值同样会这么处理,这就是我们把键值扩充到64字节的原因。)

4.最后我们通过运行散列函数处理opad.inner_result——即第3步获得结果,来创建“外部”散列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值