Chinaunix首页 | 论坛 | 博客
  • 博客访问: 603473
  • 博文数量: 148
  • 博客积分: 5184
  • 博客等级: 大校
  • 技术积分: 1402
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-14 17:16
文章分类

全部博文(148)

文章存档

2012年(21)

2011年(27)

2010年(30)

2009年(21)

2008年(40)

2007年(9)

我的朋友

分类: 系统运维

2011-05-15 14:45:54

项目名称:网站首页文件防篡改
版本:1.0
团队:3Vshej
作者:网游世界
功能:网站首页文件防篡改

团队主页:
团队信箱: 3vshej+163.com[+=@]
创建日期: 2011-5-5
版权声明: 免费软件

曾经维护过一个网站,首页总是被篡改,够无语的,于是找了个软防御的方法。

在首页中加入JS代码来判断首页是滞被篡改,如果篡改,即刻恢复。

配置说明:
$indexfile = './index.html';//首页文件名
$md5file = './IndexMd5.dat';//存储MD5文件名
$backupfile = './backup_index.html.bak';//备份首页文件名
$sx = 'T';//设定密钥

使用说明:
1、将JS代码加入首页文件中
需要先将下列代码加入到首页


2、进行首次备份
使用 ./CheckFile.php?cmd=BackupFile&SN=T 来进行首次备份。
注意默认SN操作密钥为T,建议及时修改。

参数说明:
程序提供两个参数,
RestoreFile为恢复文件。
BackupFile为备份文件,后面的SN为操作密钥。

附加:
可以自定要备份的首页文件。
可以自定要存储的MD5文件、首页备份文件的所在位置。

通过对比首页文件的MD5值来判断文件是否被篡改。

CheckFile.php源码:
  1. <?php
  2. /*
  3. * ===========================================
  4. * 项目: 网站首页文件防篡改
  5. * 版本: 1.0
  6. * 团队: 3Vshej
  7. * 作者: 网游世界
  8. * 功能: 网站首页文件防篡改
  9. * ===========================================
  10. * Copyright (c) 2011
  11. * 团队主页:
  12. * 团队信箱: 3vshej+163.com[+=@]
  13. * 创建日期: 2011-5-5
  14. * 修改日期: -
  15. * 修改说明: -
  16. * 版权声明: 免费软件
  17. * ===========================================
  18. */
  19. ob_start();
  20. echo '



  21. 网站首页防篡改 - 3Vshej';

  22. $cmd = $_GET['cmd'];//接收CMD参数

  23. $indexfile = './index.html';//首页文件名
  24. $md5file = './IndexMd5.dat';//存储MD5文件名
  25. $backupfile = './backup_index.html.bak';//备份首页文件名
  26. $badmd5 = '';//用于存储旧MD5值
  27. $newmd5 = '';//用于存储备份的MD5值
  28. $sx = 'T';//设定密钥

  29. error_reporting(0);//关闭错误显示

  30. switch ($cmd){

  31.     case 'RestoreFile':
  32.         //用于判断并恢复文件

  33.         $badmd5 = md5_file($indexfile);//计算现在首页文件MD5
  34.         $newmd5 = file_get_contents($md5file);

  35.         if ($newmd5 == ''){
  36.             //备份MD5文件读取失败

  37.             echo '

    (: 备份的MD5文件读取失败,请您重新备份首页文件以重新生成MD5备份文件。

    '
    ;
  38.             break;

  39.             }else{//MD5文件读取成功

  40.                 if ($newmd5 != $badmd5){
  41.                     //值对比,不相等,进行还原

  42.                     $ok = copy($backupfile,$indexfile);

  43.                     if($ok){

  44.                         echo '

    :) 文件恢复成功。

    '
    ;

  45.                         }else{
  46.                             echo '

    (: 文件恢复失败,请您手工替换。或联系空间提供商。

    '
    ;
  47.                             break;
  48.                     }

  49.                     }else{
  50.                         echo '

    :) 文件没有被篡改。

    '
    ;
  51.                 }

  52.         }

  53.         break;

  54.     case 'BackupFile':
  55.         //用于备份现有首页文件
  56.         if ($_GET['SN'] == $sx){//判断密钥

  57.             $ok = copy($indexfile,$backupfile);//备份文件

  58.             if ($ok){//备份成功

  59.                 $newmd5 = md5_file($indexfile);//首页文件MD5计算文件
  60.                 file_put_contents($md5file,$newmd5);//写入MD5值到文件

  61.                 echo '

    :) 首页文件备份成功。

    '
    ;

  62.                 }else{
  63.                     echo '

    (: 首页文件备份失败,请确定文件是否存在,或稍后重新备份,或联系空间提供商。

    '
    ;
  64.                     break;
  65.             }

  66.             }else{
  67.             echo '

    :( 密钥无效!

    '
    ;
  68.         }

  69.     break;

  70.     default:
  71.         echo '

    :( 参数无效

    '
    ;

  72. }

  73. echo ' ';
  74. ob_flush();
  75. ?>
源码及演示程序下载:

阅读(3768) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~