半点优化网 http://www.bdxc.net/
当前位置首页 > 网站技术问题> 正文

网站被黑客黑了该怎么办?

2022-05-31 08:56:47 暂无评论 232 网站技术问题 判断   怎样   更新

1.分析系统日志、服务器日志,检查自己站点的页面数量、流量等是否有异常波动,是否存在异常访问或操作日志;

2.检查网站文件是否有不正常的修改,尤其是首页等重点页面;

3.网站页面是否引用了未知站点的资源(图片、JS等),是否被放置了外站的异常链接;

4.检查网站是否有不正常增加的文件或目录;

5.检查网站目录中是否有非管理员打包的网站源码、未知txt文件等。

6.检查跟目录是否有非自己定义的global.asa、global.asax文件

7.重点检查首页是否被修改,如有要仔细检查代码,重点<script>、<iframe>代码,首页包含的脚本文件、包含的js、css文件等

怎样判断网站已更新了?

如何判断一个网页是否更新?需要去判断一个网页是否更新,下面是我已知道的并已经代码实现一些方法的总结:

1. 根据http协议头

在爬网页时,我们首先会向服务器发送head请求,随后在返回的httpheader资料中,我们可以找到Last-Modifed一栏, 即网页最后的修改时间。但是这个判断主要在于静态页面,在动态页面中Last-Modifed只是服务器最后发送Response的时间,所以我们将其作为网页是否更新的一个参考值,设置权重。

2. 通过hash数字签名

在下载完网页后我们可以把服务器返回的数据流先放在一个缓冲区里,再利用一些算法生成hash值,然后每次查看网页时先生成hash值与第一次的对比,根据差异度可以判断更新比例。而通常按照汉明距离来计算,三个以内即可判断未更新。

在这一次的项目中,我使用的是simhash算法来实现生成网页hash数字签名,参考的博客为:

局部敏感哈希算法,而通过java正式实现可使用的版本:

通常来说,simhash算法与普通的hash码的区别在:普通hash算法对改动过于敏感,并且针对大文本,算法耗时长,准确度还不高。

而simhash的实现步骤归于以下四步:

(1)将文章转换为一组加权的特征值构成的向量,即对文章进行分词,而如何去分,就十分考验大家的水平 了,这次的实现中,我对与英文是按照空格和关联词分的,而中文由于不太懂就直接按照逗句号了。

(2)计算hash码,通过hash算法将每个词变成hash值

(3)加权:对hash值根据词语的权重换算成加权数串,1位正数,0位负,例如10011,权重为4,则变为:4 -4 4 -4 4

(4)合并:对加权后的数组串,按照每一位进行计算,比如两个字符串 10011 00110 一个权重为4,一个权重 为5,则为4-5 -4-5 -4+5 4+5 4-5 合并为:-1 -9 1 9 -1,然后转换回hash码,正数为1,负数为0,即变为 00110

然后我们计算两个文本的simhash值的汉明距离,其实就是看有多少位的差别,一般少于三位代表两个网页为差不多的。

在这个算法中,如果你直接使用的话,或许会发现simhash对某些改动并不敏感,而如何在两种方法之间权衡来。

更好的判断网页的更新,就需要根据实际情况进行权重选择。

猜你喜欢