tp5 搜索框防tp框架防止sql注入入要注意什么

持久化框架一定能防止SQL注入?
[问题点数:20分]
持久化框架一定能防止SQL注入?
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年1月 Java大版内专家分月排行榜第二2015年12月 Java大版内专家分月排行榜第二2015年8月 Java大版内专家分月排行榜第二2015年3月 Java大版内专家分月排行榜第二2015年1月 Java大版内专家分月排行榜第二2014年12月 Java大版内专家分月排行榜第二2014年11月 Java大版内专家分月排行榜第二2014年6月 Java大版内专家分月排行榜第二2014年4月 Java大版内专家分月排行榜第二2014年1月 Java大版内专家分月排行榜第二2013年11月 Java大版内专家分月排行榜第二
2015年9月 Java大版内专家分月排行榜第三2015年6月 Java大版内专家分月排行榜第三2015年5月 Java大版内专家分月排行榜第三2015年2月 Java大版内专家分月排行榜第三2014年3月 Java大版内专家分月排行榜第三2013年12月 Java大版内专家分月排行榜第三
2013年10月 总版技术专家分月排行榜第三
2014年3月 Java大版内专家分月排行榜第一2014年1月 Java大版内专家分月排行榜第一2013年12月 Java大版内专家分月排行榜第一2013年11月 Java大版内专家分月排行榜第一2013年10月 Java大版内专家分月排行榜第一
匿名用户不能发表回复!|tp5怎么防sql注入 xss跨站脚本攻击 - ThinkPHP框架
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。刚看到TP 的注入补丁..防sql注入 - ThinkPHP框架
刚看到TP的SQL注入的补丁,突然发现有种不好的预感,马上测试的下自己正在弄的项目 因为也有很多字符串拼接的查询,,不试不知道,一试吓一跳啊....尼玛太坑爹了.立马想办法解决
怎么解决..这个东西自己写不太可能啊,最直接的方法,把Discuz 的代码拿来,在查询的几个地方 判断下,就行行了..
这个代码大家也可以直接拿去用,我基本没改class&sqlsave&{
&&&&protected&static&$checkcmd&=&array('SEL'=&1,&'UPD'=&1,&'INS'=&1,&'REP'=&1,&'DEL'=&1);
&&&&protected&static&$config&=&array(
&&&&&&&&&&&&'status'=&1,
&&&&&&&&&&&&'dfunction'=&array('load_file','hex','substring','if','ord','char'),
&&&&&&&&&&&&'daction'=&array('@','intooutfile','intodumpfile','unionselect','(select','unionall','uniondistinct'),
&&&&&&&&&&&&'dnote'=&array('/*','*/','#','--','&',''),
&&&&&&&&&&&&'dlikehex'=&1,
&&&&&&&&&&&&'afullnote'=&'0',
&&&&&&&&);
&&&&public&static&function&checkquery($sql)&{
&&&&&&&&if&(self::$config['status'])&{
&&&&&&&&&&&&$check&=&1;
&&&&&&&&&&&&$cmd&=&strtoupper(substr(trim($sql),&0,&3));
&&&&&&&&&&&&if(isset(self::$checkcmd[$cmd]))&{
&&&&&&&&&&&&&&&&$check&=&self::_do_query_safe($sql);
&&&&&&&&&&&&}&elseif(substr($cmd,&0,&2)&===&'/*')&{
&&&&&&&&&&&&&&&&$check&=&-1;
&&&&&&&&&&&&}
&&&&&&&&&&&&if&($check&&&1)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&return&
&&&&&&&&&&&&}
&&&&&&&&return&
&&&&private&static&function&_do_query_safe($sql)&{
&&&&&&&&$sql&=&str_replace(array('\\\\',&'\\\'',&'\\&',&'\'\''),&'',&$sql);
&&&&&&&&$mark&=&$clean&=&'';
&&&&&&&&if&(strpos($sql,&'/')&===&false&&&&strpos($sql,&'#')&===&false&&&&strpos($sql,&'--&')&===&false&&&&strpos($sql,&'@')&===&false&&&&strpos($sql,&'`')&===&false)&{
&&&&&&&&&&&&$clean&=&preg_replace(&/'(.+?)'/s&,&'',&$sql);
&&&&&&&&}&else&{
&&&&&&&&&&&&$len&=&strlen($sql);
&&&&&&&&&&&&$mark&=&$clean&=&'';
&&&&&&&&&&&&for&($i&=&0;&$i&&&$&$i++)&{
&&&&&&&&&&&&&&&&$str&=&$sql[$i];
&&&&&&&&&&&&&&&&switch&($str)&{
&&&&&&&&&&&&&&&&&&&&case&'`':
&&&&&&&&&&&&&&&&&&&&&&&&if(!$mark)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$mark&=&'`';
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$clean&.=&$
&&&&&&&&&&&&&&&&&&&&&&&&}&elseif&($mark&==&'`')&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$mark&=&'';
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&case&'\'':
&&&&&&&&&&&&&&&&&&&&&&&&if&(!$mark)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$mark&=&'\'';
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$clean&.=&$
&&&&&&&&&&&&&&&&&&&&&&&&}&elseif&($mark&==&'\'')&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$mark&=&'';
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&case&'/':
&&&&&&&&&&&&&&&&&&&&&&&&if&(empty($mark)&&&&$sql[$i&+&1]&==&'*')&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$mark&=&'/*';
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$clean&.=&$
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$i++;
&&&&&&&&&&&&&&&&&&&&&&&&}&elseif&($mark&==&'/*'&&&&$sql[$i&-&1]&==&'*')&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$mark&=&'';
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$clean&.=&'*';
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&case&'#':
&&&&&&&&&&&&&&&&&&&&&&&&if&(empty($mark))&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$mark&=&$
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$clean&.=&$
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&case&&\n&:
&&&&&&&&&&&&&&&&&&&&&&&&if&($mark&==&'#'&||&$mark&==&'--')&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$mark&=&'';
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&case&'-':
&&&&&&&&&&&&&&&&&&&&&&&&if&(empty($mark)&&&&substr($sql,&$i,&3)&==&'--&')&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$mark&=&'--&';
&&&&&&&&&&&&&&&&&&&&&&&&&&&&$clean&.=&$
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&default:
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&$clean&.=&$mark&?&''&:&$
&&&&&&&&&&&&}
&&&&&&&&if(strpos($clean,&'@')&!==&false)&{
&&&&&&&&&&&&return&'-3';
&&&&&&&&$clean&=&preg_replace(&/[^a-z0-9_\-\(\)#\*\/\&]+/is&,&&&,&strtolower($clean));
&&&&&&&&if&(self::$config['afullnote'])&{
&&&&&&&&&&&&$clean&=&str_replace('/**/',&'',&$clean);
&&&&&&&&if&(is_array(self::$config['dfunction']))&{
&&&&&&&&&&&&foreach&(self::$config['dfunction']&as&$fun)&{
&&&&&&&&&&&&&&&&if&(strpos($clean,&$fun&.&'(')&!==&false)
&&&&&&&&&&&&&&&&&&&&return&'-1';
&&&&&&&&&&&&}
&&&&&&&&if&(is_array(self::$config['daction']))&{
&&&&&&&&&&&&foreach&(self::$config['daction']&as&$action)&{
&&&&&&&&&&&&&&&&if&(strpos($clean,&$action)&!==&false)
&&&&&&&&&&&&&&&&&&&&return&'-3';
&&&&&&&&&&&&}
&&&&&&&&if&(self::$config['dlikehex']&&&&strpos($clean,&'like0x'))&{
&&&&&&&&&&&&return&'-2';
&&&&&&&&if&(is_array(self::$config['dnote']))&{
&&&&&&&&&&&&foreach&(self::$config['dnote']&as&$note)&{
&&&&&&&&&&&&&&&&if&(strpos($clean,&$note)&!==&false)
&&&&&&&&&&&&&&&&&&&&return&'-4';
&&&&&&&&&&&&}
&&&&&&&&return&1;
&&&&public&static&function&setconfigstatus($data)&{
&&&&&&&&self::$config['status']&=&$data&?&1&:&0;
}用的时候&if&(true&!==&sqlsave::checkquery($sql))&{
&&&&&&&&&&&&redirect(config('site_url'));
&&&&&&&&}本来想如果检测不通过,就报个异常或者写个日志啥的,不过觉得不太合适..干脆直接跳转到首页拉倒了
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 tp5有防sql注入吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信