设为首页 收藏本站
查看: 479|回复: 0

[经验分享] PHP防注入与伪静态

[复制链接]

尚未签到

发表于 2017-3-31 08:20:11 | 显示全部楼层 |阅读模式
  PHP防注入话不多说直接看代码
  PHP防注入,主要是为了防止恶意写入后台数据库;//防注入函数function inject_check($sql_str){$check=eregi('select|insert|update|delete|/'|///*|/*|/././/|/.//|union|into|load_file|outfile', $sql_str);if($check){echo "输入非法内容";exit();}else{return $sql_str;}}//接收传递参数后进行转换$_GET[type]=inject_check($_GET[type]);//之后再使用转换后的参数
  PHP伪静态函数,本人原创,仅供学习交流使用,如用于正常开发出现安全问题一切与本人无关。
  /*** @abstract 处理PHP URL 实习伪静态功能* @author yangqijun 2011-03-07 youngqj@126.com* @version 1.0*/function url_rewrite(){global $_GET;$url=array();$tem=array();$nav=$_SERVER["REQUEST_URI"];$script_name=$_SERVER["SCRIPT_NAME"];$info=$_SERVER['PATH_INFO'];if(str_isNULL($info)){return false;}if(IS_REWRITE)  //<< 判断服务器是否开启rewrite 模块{$nav=$script_name.$info;}$nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1);if(substr($nav,strlen($nav)-1,1) == '/'){$nav = substr($nav,0,-1);}$nav=strtolower($nav);$_GET = explode("/",$nav);if(strpos($_GET[0],'&')){$arg=explode('&',$_GET[0]);$url[0]=$arg[0];foreach ($arg as $k=>$val){if(strpos($val,'=')){$param=explode('=',$val);$tem[$param[0]]= $param[1] ;}}$url[1]=$tem;$arg=$url;}else{$arg =$_GET[0];}return $arg   ;unset($tem);unset($url);}
  简单调用代码如下:
  define('IS_REWRITE',false);  //服务器是否开启rewritesession_start();include 'function.php';$filename = basename($_SERVER['SCRIPT_NAME']);$arg=url_rewrite();$route=array();if(!$arg){if(!check_userLogin()){header("Location:$filename/login");}else{header("Location:$filename/demo");}}else if(!is_array($arg)&&$arg!='login'&&$arg!='reg'){if(!check_userLogin()){header("Location:login");}$controller=$arg;}else if(is_array($arg)){if (is_array($arg[1])) {foreach ( $arg[1] as $key => $value ) {$route [$key] = $value;}}$controller=$arg[0];}else{$controller=$arg;}display($controller);
  上代码中的display()函数如下:
  function display($view) {global $runtime,$route;@extract($route);$classname = ucwords(strtolower($view));  $view = $view .'.php';$viewpath = $view;$siteurl='http://'.$_SERVER[HTTP_HOST].':'.$_SERVER[SERVER_PORT].'/'.SYS_DIR;if (! file_exists ( $viewpath )) exit ( 'The views ' . $view . ' is not exists!' );require $viewpath;}
  最后伪静态路径为index.php/login&username=demo&password=123
  PS:根据自己需要可以修改url_rewrite()函数里的分隔符 比如可以将&改为-

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-357871-1-1.html 上篇帖子: php设计模式-策略模式-例题学习 下篇帖子: php 获取客户端的真实ip
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表