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步获得结果,来创建“外部”散列。