对用户的输入的数据进行安全验证
2012-05-15 10:55
525 查看
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步获得结果,来创建“外部”散列。
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步获得结果,来创建“外部”散列。
相关文章推荐
- 对用户输入的数据进行安全验证(Safe-Handling User Input)
- 安全编程: 验证输入--接收用户数据的最佳实践
- php中filter函数验证、过滤用户输入的数据
- 来自w3cschool的jsp表单验证:JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证
- PHP中进行日期用户输入生日有效性验证
- 如果做到安全的系统之验证用户输入.
- 用户输入数据的验证
- jsData 使用教程(五) 对输入数据进行验证(服务端验证)
- jsData 使用教程(四) 对输入数据进行验证(客户端验证)
- shell脚本之从用户读取输入并进行验证
- DevExpress XtraGrid网格控件示例五:验证终端用户输入的数据
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- php filter函数验证、过滤用户输入数据
- 从留言板开始做网站(七)——服务端的数据验证和安全输入
- WebClient实现下载txt文件并与用户输入进行匹配 WebClient实现用户序列号验证 txt文件在服务器端密文存储 RSA解密加密
- php中filter函数验证、过滤用户输入的数据
- C#实现对用户输入数据进行校验的类实例
- 大数据安全管理 -- 用户验证与授权1
- Spark中组件Mllib的学习11之使用ALS对movieLens中一百万条(1M)数据集进行训练,并对输入的新用户数据进行电影推荐
- 四则运算程序扩展:将程序改为java语言,并允许用户输入,对输入结果进行验证