您好,欢迎光临本网站![请登录][注册会员]  
文件名称: PHP中的代码安全和SQL Injection防范1
  所属分类: PHP
  开发工具:
  文件大小: 2kb
  下载次数: 0
  上传时间: 2009-02-17
  提 供 者: yiyi****
 详细说明: 在PHP编码的时候,如果考虑到一些比较基本的安全问题,首先一点: 1. 初始化你的变量 为什么这么说呢?我们看下面的代码: 以下为引用的内容: if ($admin) { echo '登陆成功!'; include('admin.php'); } else { echo '你不是管理员,无法进行管理!'; } 好,我们看上面的代码好像是能正常运行,没有问题,那么加入我提交一个非法的参数过去呢,那么效果会如何呢?比如我们的这个页是 http://www.traget.com/login.php,那么我们提交:http://www.target.com/login.php?admin=1,呵呵,你想一些,我们是不是直接就是管理员了,直接进行管理。 当然,可能我们不会犯这么简单错的错误,那么一些很隐秘的错误也可能导致这个问题,比如最近暴出来的phpwind 1.3.6论坛有个漏洞,导致能够直接拿到管理员权限,就是因为有个$skin变量没有初始化,导致了后面一系列问题。 那么我们如何避免上面的问题呢?首先,从php.ini入手,把php.ini里面的register_global = off,就是不是所有的注册变量为全局, 那么就能避免了。但是,我们不是服务器管理员,只能从代码上改进了,那么我们如何改进上面的代码呢?我们改写如下: 以下为引用的内容: $admin = 0; // 初始化变量 if ($_POST['admin_user'] && $_POST['admin_pass']) { // 判断提交的管理员用户名和密码是不是对的相应的处理代码 // ... $admin = 1; } else { $admin = 0; } if ($admin) { echo '登陆成功!'; include('admin.php'); } else { echo '你不是管理员,无法进行管理!'; } 那么这时候你再提交 http://www.target.com/login.php?admin=1 就不好使了,因为我们在一开始就把变量初始化为 $admin = 0 了,那么你就无法通过这个漏洞获取管理员权限。 2. 防止SQL Injection (sql注射) SQL 注射应该是目前程序危害最大的了,包括最早从asp到php,基本上都是国内这两年流行的技术,基本原理就是通过对提交变量的不过滤形成注入点然后使恶意用户能够提交一些sql查询语句,导致重要数据被窃取、数据丢失或者损坏,或者被入侵到后台管理。 基本原理我就不说了,我们看看下面两篇文章就很明白了: http://www.4ngel.net/article/36.htm http://www.4ngel.net/article/30.htm 那么我们既然了解了基本的注射入侵的方式,那么我们如何去防范呢?这个就应该我们从代码去入手了。 ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 防范1
 输入关键字,在本站1000多万海量源码库中尽情搜索: