首页 > 代码库 > PHP 数据安全问题总结

PHP 数据安全问题总结

总结:关键的判断,比较尽量使用=== 类型和值都比较的恒等比较

1.if($var) $var 遵循boolean 转换。

当转换为 boolean 时,以下值被认为是 FALSE

  • 布尔值 FALSE 本身
  • 整型值 0(零)
  • 浮点型值 0.0(零)
  • 空字符串,以及字符串 "0"
  • 不包括任何元素的数组
  • 不包括任何成员变量的对象(仅 PHP 4.0 适用)
  • 特殊类型 NULL(包括尚未赋值的变量)
  • 从空标记生成的 SimpleXML 对象

2.字符串主动转整形(int)或intval():会将从字符串的开始进行转换知道遇到一个非数字的字符。即使出现无法转换的字符串,intval()不会报错而是返回0。

3.比较==中,隐藏的字符串整形转换原则:a.进行比较运算时,如果遇到了0e\d+这种字符串,就会将这种字符串解析为科学计数法。b.当其中的一个字符串是0x开头的时候,PHP会将此字符串解析成为十进制然后再进行比较。

"0e1abc"=="0"     //false
"0x1e240"=="123456"		//true
"0x1e240"==123456		//true
"0e132456789"=="0e7124511451155" //true

4.注意 switch,array_search()与in_array()松散比较来判断问题。

PHP 数据安全问题总结