注入的产生通常是直接组装条件和句子,而不处理用户输入的参数。。
代码举例:
///不安全的写作例子1
$_GET['id']=8。///我希望得到正整数php跨域注入。
$data=M('Member')->where('id='。$_GET['id'])->find();
$_GET['id']='8orstatus=1';//隐患:注入结构畸形查询条件;sql防注入php。
///安全替换写法
$data=M('Member')->where(array('id'=>$_GET['id']))->find()///使用数组检测自动使用框架自带的字段类型,防止注入
$data=M('Member')->where(array('id'=>(int)$_GET['id']))->find();//类型约束
$data=M('Member')->where('id='。intval($_GET['id']))->find();//类型转换
$data=M('Member')->where(array('id'=>I('get。id","intval')))->find()//我习惯了写作方法
$data=M('Member')->where(array('id'=>':id'))->bind(':id',I('get。id'))->select();//PDO可以使用参数绑定驱动php防止sql注入的函数。
$data=M('Member')->where("id=%d",array($_GET['id']))->find()//预处理机制
///不安全的写作例子2
$_GET['id']=8。///我希望得到正整数
$data=M()->query('SELECT*FROM`member`WHEREid='。$_GET['id);///执行SQL语句php防止sql注入的函数封装类。
$_GET['id']='8UNIELECT*FROM`member`";//隐患:注入构造畸形语句;验证码防止sql注入。
2。防止注入的一般原则是<<根据具体的业务逻辑,限制和判断用户值的范围、类型和正负>>,同时<<尽量使用THINKPHP自带的SQL函数和写法>>。
3。在THINKPHP3。2版本中的操作步骤如下:phppdo防止sql注入。
一:在项目配置文件中添加配置:DEFAULT_FILTER'=>'htmlspecialchars//默认过滤函数
二:使用框架带的I方法获取用户提交的数据;phpmysqli防sql注入。
例子:M('Member')->save(array('content'=>I('post。content));这样添加的content内容是通过的htmlspecialchars处理过的。
4。为COOKIE添加httponly配置php怎么防止sql注入。
5。**版本的thinkphp已经支持此参数。
6。HTML5值得注意的新特征:防sql注入代码php。
9。过滤富文本
过滤富文本是,XSS攻击最麻烦的话题不仅是小网站,还有像BAT这样的巨头三天两头。。
中企动力是一家专业的网络推广公司,我们拥有丰富的网络推广经验和专业的团队,能够为企业提供全方位的网络推广服务。我们为企业提供网站建设、网站优化、平台推广等服务,帮中企动力业在网络上提升知名度、扩大影响力、提升销售额。如果您有网络推广的需求,欢迎联系中企动力加微信:CE4006608066,我们将竭诚为您服务。