安全、防注入 杂记
背景、概述
早在Sql注入横行的前几年,字符串转化为整数就已经被列为每个web程序必备的操作了。web程序将get或post来的id、整数等值强制经过转化函数转化为整数,过滤掉危险字符,尽可能降低系统本身被Sql注入的可能性。
现如今,虽然Sql注入已经逐渐淡出历史舞台,但是,为了保证web程序的正常运行,减少出错概率,更好的保证用的满意度,我们同样需要将用户的不正确输入转化为我们所需要的。
一:接收的参数为整型时,要做强制转化为整型处理
①强制类型转换方式
强制类型转换方式,就是“在要转换的变量之前加上用括号括起来的目标类型”
<?php $foo = "1"; // $foo 是字符串类型 $bar = (int)$foo; // $bar 是整型 ?>
②内置函数方式
内置函数方式,就是使用PHP的内置函数intval进行变量的转换操作。
<?php $foo = "1"; // $foo 是字符串类型 $bar = intval($foo); // $bar 是整型 ?>
如果参数是浮点型,可以使用floatval — 获取变量的浮点值
<?php $var = '122.34343The'; $float_value_of_var = floatval ($var); print $float_value_of_var; // 打印出 122.34343 ?>
二:接收的参数为字符串时,要剥去字符串中的 HTML、XML 以及 PHP 标签
①内置函数方式
内置函数方式,就是使用PHP的内置函数strip_tags进行变量的转换操作。
<?php $foo = "Hello <b>world!</b>"; // $foo 是字符串类型,含有html标签 $bar = strip_tags($foo); // $bar 是剥去字符串中的 HTML、XML 以及 PHP 标签的字符串 ?>