免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2464 | 回复: 0
打印 上一主题 下一主题

网站首页文件防篡改[PHP] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-21 08:44 |只看该作者 |倒序浏览
项目名称:网站首页文件防篡改
版本:1.0
团队:3Vshej
作者:网游世界
功能:网站首页文件防篡改

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

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

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

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

使用说明:
1、将JS代码加入首页文件中
需要先将下列代码加入到首页
<script type="text/javascript" src="./CheckFile.php?cmd=RestoreFile"></script>

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. * 团队主页: http://www.3vshej.cn
  12. * 团队信箱: 3vshej+163.com[+=@]
  13. * 创建日期: 2011-5-5
  14. * 修改日期: -
  15. * 修改说明: -
  16. * 版权声明: 免费软件
  17. * ===========================================
  18. */
  19. ob_start();
  20. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  21. <html xmlns="http://www.w3.org/1999/xhtml">
  22. <head>
  23. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  24. <title>网站首页防篡改 - 3Vshej</title></head><body>';

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

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

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

  33. switch ($cmd){

  34.     case 'RestoreFile':
  35.         //用于判断并恢复文件

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

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

  40.             echo '<h2>(: 备份的MD5文件读取失败,请您重新备份首页文件以重新生成MD5备份文件。</h2>';
  41.             break;

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

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

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

  46.                     if($ok){

  47.                         echo '<h2>:) 文件恢复成功。</h2>';

  48.                         }else{
  49.                             echo '<h2>(: 文件恢复失败,请您手工替换。或联系空间提供商。</h2>';
  50.                             break;
  51.                     }

  52.                     }else{
  53.                         echo '<h2>:) 文件没有被篡改。</h2>';
  54.                 }

  55.         }

  56.         break;

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

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

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

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

  64.                 echo '<h2>:) 首页文件备份成功。</h2>';

  65.                 }else{
  66.                     echo '<h2>(: 首页文件备份失败,请确定文件是否存在,或稍后重新备份,或联系空间提供商。</h2>';
  67.                     break;
  68.             }

  69.             }else{
  70.             echo '<h2>:( 密钥无效!</h2>';
  71.         }

  72.     break;

  73.     default:
  74.         echo '<h2>:( 参数无效</h2>';

  75. }

  76. echo '</body></html>';
  77. ob_flush();
  78. ?>
源码及演示程序下载:
http://download.csdn.net/source/3279143
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP