网站目录防篡改程序,perl web目录md5文件验证

news/2024/5/19 11:25:36/文章来源:https://blog.csdn.net/weixin_34417814/article/details/91758554

为什么80%的码农都做不了架构师?>>>   hot3.png

       有时候站点有bug,很容易会被人修改,添加其他乱七八糟的东西,针对这类问题,常见的做法:1、修改升级程序漏洞。2、用WAF主动防御(用第三方免费cdn,也提供这类防御)。

       本文我们介绍第三种方法(如果网站固定文件不变的情况下)网站部署好后,通过对站点所有文件的计算MD5值,并保存在一个文件中。然后以后可以手动或者crontab,监控程序等定期对保存文件中的文件生成md5值和已有的md5值对比,如果发现值对不上,则说明文件被篡改了。

use strict;
use warnings;
use Digest::MD5 qw(md5_hex);my $dir=shift;
# 此处默认为检查md5值。
md5check($dir);
# 如果需要开始生成web目录的md5值,注释掉上面一句,把下面一句启用
#md5init($dir);
sub md5_sum {my ($file_name,$mode)=@_;my ($FD,$ctx, $md5);open ($FD,$file_name) or die "Can't open /'$file_name/': $!";$ctx = Digest::MD5->new;binmode($FD) if $mode;$ctx->addfile($FD) || die "$!\n";$md5 = $ctx->hexdigest;close $FD;return $md5;
}sub md5check {
my $file=shift;
open(my $fd, '<',$file) or die "$file: $!\n";
print $file;
while (<$fd>){my ($name, $sum) = split /\s+/;if ($sum eq md5_sum($name,1)){print "$name OK\n";}else{print "$name FAILED\n";}
}close $fd;}
# 遍历目录计算md5值
sub md5init {my $fd=shift;my $md5value;if ( -f $fd ){if ( -T $fd ) {#print "按照文本模式进行计算MD5!\n";$md5value =md5_sum($fd,0);print "$fd\t$md5value\n";}elsif( -B $fd ){#print "二进制文件用binmod计算MD5!\n";$md5value =md5_sum($fd,1);print "$fd\t$md5value\n";}else{#print "其他文件,按照bimmod计算!\n";$md5value = md5_sum($fd,1);print "$fd\t$md5value\n";}}elsif( -d $fd ){my $file_md5;# print "开始验证目录下所有文件:\n";opendir (my $DH,$fd) or die "Can't open dir $fd: $!";for(readdir $DH ){my $file=$fd.'/'.$_;# 上级目录..,本目录. 以及连接文件跳过next if ($file =~ m{/.$} || $file =~ m{/..$} || -l $file );md5chek($file);}closedir $DH;}}

 

以上程序保存成文件,比如filemd5check.pl

 注意以上代码,笔者已经写成模块MD5sum,可以通过oschina的git库:

http://git.oschina.net/ijz/MD5Check

同时可以通过perl cpan库安装文件进行安装。cpanm MD5Check

一、生成web的md5验证文件:

注释掉

#md5check($dir);

md5init($dir);

然后执行  web目录  > webmd5-20160920

web目录换成自己实际的web目录 webmd5-20160920 为保存计算结果的文件,可以自定义

二、检查时候,用默认文件

perl filemd5check.pl  webmd5-20160920

 

 

转载于:https://my.oschina.net/cshell/blog/776288

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_791529.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Apache搭建Web网站服务器

使用Apache搭建Web网站服务器 一&#xff1a;实验目标 apache服务器常见概念 apache服务器安装及相关配置文件 例1&#xff1a;为公司内网搭建一个web服务器 例2&#xff1a;使用rpm搭建lamp 环境 例3&#xff1a;修改网根目录及对应参数&#xff0c;设置访问权限 例4,&#xf…

如何写接口可以让对方通过接口推送数据代码示例_SEO优化之百度主动推送链接...

本节来说下seo里面的链接问题&#xff0c;为了让我们最近更新的文章尽快被百度收录&#xff0c;以前都是人为的去百度搜索引擎上面提交链接&#xff0c;让蜘蛛过来抓取&#xff0c;后期百度也出了一个接口(暂叫它接口)&#xff1a;百度资源搜索平台-链接提交&#xff0c;共有&a…

woocommerce产品选项描述修改_WooCommerce跨境电商独立站建站教程2020版

跨境电商独立站怎么搭建&#xff1f;WooCommerce跨境电商独立站建站是怎么回事&#xff1f;这篇文章苦心孤译就跟你分享如何在WordPress上利用WooCommerce搭建一个跨境电商独立站。人在东南亚&#xff0c;网络实在不怎么样&#xff0c;图片比较多。大家可以点击下方链接阅读原文…

高性能网站设计之缓存更新的套路

看到好些人在写更新缓存数据代码时&#xff0c;先删除缓存&#xff0c;然后再更新数据库&#xff0c;而后续的操作会把数据再装载的缓存中。然而&#xff0c;这个是逻辑是错误的。试想&#xff0c;两个并发操作&#xff0c;一个是更新操作&#xff0c;另一个是查询操作&#xf…

大型网站--负载均衡架构

负载均衡 &#xff08;Load Balancing&#xff09; 负载均衡建立在现有网络结构之上&#xff0c;它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。大型网站负载均衡的利器全局负载均衡系统&#xff0…

织梦index.php被黑,织梦网站被黑的解决流程

织梦网站安全问题一直以来都是令人堪忧的&#xff0c;不过毕竟是开源程序&#xff0c;可以理解。这不最近有一位同学的站点就“中招”了&#xff0c;下面阿南就把处理的流程记录下来&#xff0c;希望对站长们有帮助。首先打开站点首页&#xff0c;我们可以看到&#xff0c;标题…

划重点!必备 SQL 查询优化技巧,提升网站访问速度

来自&#xff1a;开源中国 协作翻译链接&#xff1a;oschina.net/translate/sql-query-optimization原文&#xff1a;https://deliciousbrains.com/sql-query-optimization/译者&#xff1a;南宫冰郁, rever4433, soaring, 凉凉_, Tony, 无若在这篇文章中&#xff0c;我将介绍如…

AcFun网站已无法打开:官微表达无奈

IT之家2月2日消息 目前著名的弹幕网站AcFun中的视频已经无法播放&#xff0c;同时经过多地网友测试&#xff0c;AcFun的网站也已经无法打开&#xff0c;官微也发表微博&#xff0c;似乎表达对于网站无法打开的无奈。经过IT之家的测试&#xff0c;目前AcFun网站已经无法打开&…

大型网站限流算法的实现和改造

最近写了一个限流的插件&#xff0c;所以避免不了的接触到了一些限流算法。本篇文章就来分析一下这几种常见的限流算法分析之前依我个人的理解来说限流的话应该灵活到可以针对每一个接口来做。比如说一个类里面有5个接口&#xff0c;那么我的限流插件就应该能针对每一个接口就行…

高级Java开发人员最常访问的几个网站

这是高级Java开发人员最常访问的几个网站。 这些网站提供新闻&#xff0c;一般问题或面试问题的答案&#xff0c;精彩的讲座等。质量是优秀网站的关键因素&#xff0c;这此网站都有较高的质量内容。下面逐一介绍&#xff1a;1. StackoverflowStackoverflow.com可能是编程世界中…

高级Java开发人员最常访问的几个网站

这是高级Java开发人员最常访问的几个网站。 这些网站提供新闻&#xff0c;一般问题或面试问题的答案&#xff0c;精彩的讲座等。质量是优秀网站的关键因素&#xff0c;这此网站都有较高的质量内容。下面逐一介绍&#xff1a;1. StackoverflowStackoverflow.com可能是编程世界中…

大型网站系统架构的演化

四、使用集群改善应用服务器性能应用服务器作为网站的入口&#xff0c;会承担大量的请求&#xff0c;我们往往通过应用服务器集群来分担请求数。应用服务器前面部署负载均衡服务器调度用户请求&#xff0c;根据分发策略将请求分发到多个应用服务器节点。常用的负载均衡技术硬件…

JavaWeb之ServletContext——统计用户访问网站次数

各位小伙伴大家好呀~今天我们来了解 ServletContext 对象ServletContext 对象1&#xff09;什么是 ServletContext 对象ServletContext 代表是一个 web 应用的环境&#xff08;上下文&#xff09;对象,ServletContext对象内部封装是该 web 应用的信息&#xff0c;一个 web 应用…

一个大型网站的技术架构是怎样建成的

网站系统架构层次如下图所示&#xff1a;1.前端架构前端指用户请求到达网站应用服务器之前经历的环节&#xff0c;通常不包含网站业务逻辑&#xff0c;不处理动态内容。浏览器优化技术并不是优化浏览器&#xff0c;而是通过优化响应页面&#xff0c;加快浏览器页面的加载和显示…

大型网站技术架构(二):架构要素和高性能架构

作者 | Arno原文 | https://segmentfault.com/a/1190000007390358在《大型网站技术架构&#xff08;一&#xff09;》我们把整个架构演变过程大致说了一下&#xff0c;这次我们来说说从哪方面进行考虑设计。为了使网站的能够应对高并发访问&#xff0c;海量数据处理&#xff0c…

网站高并发大流量访问的处理及解决方案

来自&#xff1a;Hist_花透的博客https://blog.csdn.net/qishouzhang/article/details/471119451.硬件升级普通的P4服务器一般最多能支持每天10万独立IP&#xff0c;如果访问量比这个还要大&#xff0c; 那么必须首先配置一台更高性能的专用服务器才能解决问题 &#xff0c;否则…

网站 HTTP 升级 HTTPS 完全配置手册

作者&#xff1a;葡萄城技术团队链接&#xff1a;https://my.oschina.net/powertoolsteam/blog/1862967今天&#xff0c;所有使用Google Chrome稳定版的用户迎来了v68正式版首个版本的发布&#xff0c;详细版本号为v68.0.3440.75&#xff0c;上一个正式版v67.0.3396.99发布于6月…

ubuntu怎么跳出系统自动进去_wordpress、Dedecms织梦等网站系统怎么做百度自动推送?...

主动向百度等搜索引擎可缩短爬虫发现网站链接时间&#xff0c;加快网站的收录速度。网站时效性内容建议使用链接提交工具&#xff0c;实时向搜索推送数据。那么wordpress、Dedecms织梦等网站系统怎么做百度自动推送呢&#xff1f;有开发能力的对于动开发的人来说&#xff0c;要…

利用 PHP 扩展 Taint 找出网站的潜在安全漏洞实践

一、背景笔者从接触计算机后就对网络安全一直比较感兴趣&#xff0c;在做PHP开发后对WEB安全一直比较关注&#xff0c;2016时无意中发现Taint这个扩展&#xff0c;体验之后发现确实好用&#xff1b;不过当时在查询相关资料时候发现关注此扩展的人数并不多&#xff1b;最近因为换…

网站mysql密码怎么修改_mysql怎么修改密码

第一种方式&#xff1a;最简单的方法就是借助第三方工具Navicat for MySQL或Navicat Premium来修改&#xff0c;方法如下&#xff1a;1、登录mysql到指定库&#xff0c;如&#xff1a;登录到student库。2、然后点击上方“用户”按钮。3、选择要更改的用户名&#xff0c;然后点击…