PHP开发安全建议TOP20

『 更新时间:2008-2-16 』『 字体:变小 变大 』『 作者:佚名 | 来源:互联网 』

  7.当你使用session_regenerate_id()来阻止session固定的时候,最好是将之前的session ID移除

  实例脚本:

<?php
session_start();
$_SESSION['data'] = time();
session_regenerate_id();
?>

      检测URL以及/tmp路径

sess_82c6980017e100277a63983142fd454c
sess_a4bab88e6dfa6e900ade21e3fbd27a53

      再次检测

sess_984c5230acca90b5a75eddb89bb48354
sess_a4bab88e6dfa6e900ade21e3fbd27a53
sess_82c6980017e100277a63983142fd454c

  然后你可以看到如下情况

      sess_984c5230acca90b5a75eddb89bb48354
  sess_a4bab88e6dfa6e900ade21e3fbd27a53
  sess_82c6980017e100277a63983142fd454c
  sess_dd88c05b724d80b30c90309847f2e919

  这些session仍然很活跃。当重新生成ID的时候移除它们采用如下代码:

<?php
session_start();
$_SESSION['data'] = time();
session_regenerate_id(true);
?>

  如果你正在使用自己的session处理器的话,这可能导致你的destroy callback功能被激活。

  8.使用php安全主题,实际上不止一种方法可以完成任务。在很多情况下,战术的重组可以达到最好的安全效果。我们一直在谈论信息的过滤,我们还需要警惕来自于用户的验证信息。这是在日常的php应用中需要加以注意的。

  确认用户的输入信息

  代码实例:

<?php
$myFile = filter_var($_GET['file'], FILTER_SANITIZE_STRING);
include($myFile);
?>

  点击http://example.com/file.php?file=home.php可能会导致你的脚本包含在你的目前的目录中的文件home.php。但是如果有人请求http://example.com/file.php?file=badcode.php的话,你就会置身于执行代码的危险中,或是你不想执行的代码被执行。

  不要仅仅依靠file_exists(). 因为本地文件并不意味着这是一个正确的文件甚至那根本就不是你的文件。不要让黑客轻易的执行代码。

  为了保证安全,记住一定要过滤和确认:

<?php
// filter
$myFile = filter_var($_GET['file'], FILTER_SANITIZE_STRING);
// Then validate
$valid = array('home.php', 'about.php');
If (!in_array($myFile, $valid)) {
            die('Leave, evil hacker');
}
include($myFile);
?>

  9.有时最简单的也就是最安全的。以下的建议很简单,但是我们很惊讶在现实生活中很少有人理解以及使用。

  不要将敏感信息放于网上

  思考一下下面这个目录结构:

      /htdocs
  /includes
  /images
  /js

  如果你将你的数据库的信任状存储于一个名为db.inc的文件中,然后将其放于这一目录之下,很可能就有人下载这一文件夹名下的信息,只要他们访问http://example.com/includes/db.inc.站点,因为绝大多数的网站服务器并不知道如何处理这一.inc文件,如果有访问请求的话,它们直接被认为是纯文本。后果是可怕的。如果你存储信任状的文件使用的是非.php后缀名的话并且位于你的网络服务器的根目录之下,很可能你的信息正在泄露。

  解决方法很简单。将所有的敏感信息置于网络服务器的根目录之外。现在也有很多专家提倡把绝大多数的php代码放于网络服务器根目录之外。因为php代码不限于同一个限制,你可以在根目录的同一文件层次之下建立一个目录,然后将你的所有的机密信息和代码放在那。

      /phpinc
  /includes
  /htdocs
  /images
  /js

上一页  [1] [2] [3] [4] 下一页

【点击数:】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

关文章

您的姓名:
评分等级:
1分 2分 3分 4分 5分
评论内容:
1、严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
2、用户需对自己在使用金石网服务过程中的行为承担法律责任。
3、本站管理员有权保留或删除评论内容。
4、评论内容只代表网友个人观点,与本网站立场无关。
  • 金石网
  • | 设为首页 | 加入收藏 | 联系我们 | 版权申明 | 友情链接 | 站点地图 | 网站帮助 | 网站留言 | 广告服务 |
  • Copyright © 2001-2008 KingsNet.biz All Rights Reserved. 闽ICP备05026663号
  • 返回网站顶部