浅谈网站黑链检测和清除的方法WEB安全(精选2篇)
浅谈网站黑链检测和清除的方法WEB安全 第1篇
有时候绝的做SEO是一件很难得事情,因为现在网站到处充斥着黑链,SEO小沫这几天也为网站挂黑苦恼了很久,我们确实知道现在黑链这个行业越来越发达了,卖黑链的朋友到处都是不说,连几个几个站长工具网站里都有他们大摇大摆的广告,至于他们的黑链是怎么得来的呢?有的是正规途径获取,有的则是以非法的手段挂上别人网站的链接,然后进行出售,要是被挂上百度拔毛的网站链接呢?很明显,那将会连累到自己的站点被降权,甚至被K,今天我要谈的是如何有效的防止自己的网站被挂黑链
我们该如何检查并清除我们网站上的黑链相信很多人都想知道,今天广州SEO为大家分享一下检查和清除黑链的一些常用方法,希望大家能够受用,
检测网站是否挂黑的方法:
第一、经常查看网站的源代码
一般情况下,黑链被挂在首页的最多,或许某些出售黑链的朋友也会有喜欢挂在网站内页的喜好,这样可以稍微加深一点难度吧,站长需要经常查看网站的源代码,点击网站文字位置,右键,有一个“查看源文件”的选项,点开即可查看。如果你自己的网站设置了禁止右键,可以通过下载一些比较好用的浏览器,来查看网站源代码。
第二、巧用站长工具里的“网站死链检测”功能
可以使用站长工具里的“网站死链检测”功能,查看到网站页面的所有链接,这个工具即可以查看你网站里面的链接可否访问,也可以显示出网站页面里所有的链接,当你发现有未知名的链接时,马上采取相关措施,删除此链接,有可能是黑链。
第三、使用FTP工具查看网站文件的修改时间
每个网站文件都有自己的修改时间,要是没修改时间,系统会按照文件的创建时间来显示,假如说我现在这个网站的上传时间是4月1日,通过FTP工具查看了一下,大部分文件都是4月1日的,突然看到某个文件的修改时间变成了与现在相近的时间,那么你的这个文件就有可能已经被人家动了手脚,被修改了文件源代码,挂了黑链,现在你最好是把这个文件下载到本地,详细查看一下文件源代码里有没有挂黑链的痕迹,
当然,检查的时候,如果你是asp+access站点,看到你的数据库文件的修改时间也与现在相近,你对它基本可以忽略不计吧,譬如说你的网站文章里有统计文章点击次数的,访客浏览一次网站文章,即会写入数据库,自然也就会修改了数据库修改时间了。
第四、经常修改网站ftp的用户名和密码
有的挂黑链的朋友,会通过非法的手段获取到你的网站FTP密码,假如你的FTP密码设置的很简单,譬如“123456”等危险密码,自己都没有一点点安全意识,这种情况下,他们就更好对你的网站“下手”了,我们需要设置的复杂一点的密码,可以设置为大写、小写、标点符号相结合的密码,修改下至少可以安全一些,不要等到被挂黑链了才想起来需要修改密码,那就来不及了。
第五、巧用站长工具里的“同IP站点查询”功能
通过这个工具,你可以查询到跟你网站在同一服务器的部分网站,如果你自己的网站被挂黑链了,那么你在查一下同一服务器的其它网站,当你查到其他的某个网站也有被挂黑链的时候,这时候我们就可以怀疑到服务器安全的问题了,而不是自己网站程序的漏洞问题,现在要做的事,就是马上联系服务商,让他详细做一下服务器安全策略。
知道了黑链的所在,也知道问题的原因就好办了,我们只要将网页中的这些黑链清除掉就可以了,不过有些黑链是调用的,这时候你要找到这个调用的文件,让后将其删除,这样才能将黑链彻底删除。
浅谈网站黑链检测和清除的方法WEB安全 第2篇
当前学校的Web网站己从早期单纯展示学校形象的宣传性网站转变为对学校教师学生提供各种服务的服务型网站,网站在学校的日常事务处理中起着不可或缺的作用。但是随着网站的访问量的增加,网站也面临着越来越严重的安全威胁。要想保证学校Web网站安全,除了采购相应的硬件设备,组建安全的硬件防护体系外,网站开发人员在设计网站时注意采用相关的安全技术,减少网站的安全漏洞,也是保证网站安全的一个重要方面。本文基于ASP.NET程序设计,以网站开发者角度,从几方面谈谈如何构建安全的学校Web网站。
2 表单数据验证
在学校网站开发过程中,因开发周期和程序员水平差异等因素影响,许多网站在设计和开发时没有充分意识到数据合法性校验的重要性,对页面表单域或查询字符串传入的参数并未做出严格的检查和处理,使其在应用中存在安全隐患。这类表单特别容易受到SQL注入式攻击,攻击者利用特殊的SQL代码,通过未经数据验证的表单,动态构造非程序员预期的SQL语句,随意存取数据库、篡改数据、盗取敏感数据,甚至植入恶意指令感染整个网站数据库。
例如,在Web网站的登录验证程序中,一般有用户名(User Name)密码(User Pwd)两个字段,程序会通过用户输入的用户名和密码来执行验证操作。如果程序员使用拼接方式来构造SQL查询语句,代码如下所示(假定界面上有txt Name和txt Pwd两个用户输入框):
其原理是通过查找User Table表中的用户名和密码,一致后方能进行授权访问网站。但是,如果攻击者在界面输入框中分别输入“whatever’or 1=1--”和”abc”(不包含双引号),点击登录后,后台程序即动态构造的SQL就变为:
该语句中进行了两个条件判断,中间有一个逻辑连接词or,所以说只要有一个条件成立就会登录成功。而攻击者输入的“1=1”从逻辑上是恒成立的,后面的密码验证部分又被SQL注释符号“--”注释掉了,这样,无论攻击者输入的用户名和密码是否正确,都将能顺利进入系统,获取操作权限。
防范此类SQL注入式攻击的解决方法有两种。
(1)过滤特殊字符串。对从表单接收的用户输入数据(text),利用replace函数,使用类似如下的语句进行过滤:“text=text.Replace("'","")”,特别对于一些特殊字符,例如单引号、双引号、连接号等和and、or等逻辑操作字符。对这些特殊字符进行过滤,可有效防止攻击的发生。
(2)使用正则表达式约束用户输入。可以对用户输入的用户名、邮件地址、长度等应用进行约束,使其符合预期的书写要求。在ASP.NET的Web窗体中,可以通过开启Validate Request验证属性实现。如果将该属性设为真,则用户在Web窗体中输入具有威胁的信息时,页面将抛出异常,从而保证了Web窗体访问的安全性。
3 使用存储过程
传统的SQL字符串拼接的方式容易被SQL注入式攻击利用(如上例所示),建议使用参数化的SQL命令或存储过程,即通过Sql Command.Parameters属性的参数传值方法实现防范。
所谓存储过程是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。
系统管理员可以对执行的某一个存储过程进行权限限制,从而能够实现对某些数据访问的限制,避免非授权用户对数据的访问,保证数据的安全。参数(Parameters)集合提供了类型检测和长度检测,输入的内容将被当作文本值来对待,通过参数可以将非法字符过滤掉,数据库不会执行包含在其中的代码。此方法是防范SQL注入攻击的有效方法之一。另外,使用参数集方式还有一个额外的好处:可以严格限定输入的类型和长度,如果输入型超出范围将会触发异常。以下是一个插入一条记录到admin表的存储过程insert_admin:
这样,当用户需要添加一条记录时,输入的数据就会以参数的形式传递到存储过程中。
4 数据库连接字段加密
连接字符串存储了数据库的用户和密码等重要信息,而这些信息是采用明码的形式保存在web.config文件中的,而web.config文件是不被编译到.dll文件中,通过URL地址很容易盗取到web.config文件中的内容,存在着很大的威胁。所以需要对其进行加密保护,防止被黑客盗取数据库连接字符串,从而进一步非法访问数据库。
ASP.NET提供了一种命令行工具aspnet_regiis.exe来加密和解密Web.config文件配置部分,可以在"%WINDOWSDIR%Microsoft.NetFrameworkversion"目录下找到这个工具。只需要按照简单的语法要求输入命令,就可以完成连接字符串的加密或解密的任务。
例如:在web.config有如下节需要加密:
并且确保在configuration节的xmlns属性有如下
(1)加密
使用aspnet_regiis.exe命令行程序对所需要的Web.config节进行加密,格式如下:
其中:Configuration Name为需要加密的Web.config节名称,例如“connection Strings”,Physical Path为需要加密的web.config文件所在的物理路径(不包括文件名),Data Protection Configuration Provider是Windows数据保护API(DPAPI)提供程序,它使用Windows内置的密码学技术来加密配置节。默认情况下,这个提供程序使用本机密钥,所以在加密连接字符串时不需要编码加密,ASP.NET会自动对其加密或解密。而且加密或解密只能在同台计算机上使用,否则将不能解密。同时,在一台计算机上加密的配置,在另一台计算机上将不能正常使用。这就大大提高了加密的安全性。
(2)解密
解密该连接字符串很简单,而且不需要指定相应的提供程序就可以正常解密,代码如下:
其中:Configuration Name为需要加密的Web.config节名称,例如“connection Strings”,Physical Path为需要加密的web.config文件所在的物理路径(不包括文件名)。
5 对数据库关键数据进行加密
为了保证数据的安全,必须要对用户输入的关键数据(比如密码等)进行加密后再存入数据库。这样,就算数据库被黑客攻击,也无法获取有用的数据。对学校的网站而言,最需要加密的数据就是用户的密码。对于像密码这类的短数据,通常采用MD5加密算法。MD5的全称是Message-Digest Algorithm 5,在1991年由MIT的Ronald L.Riverst提出,由MD4演化而来,最终生成128位(4个32位的16进制数)的信息摘要算法。MD5算法是一个不可逆的字符串变换算法,即看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串。也就是说,MD5是一个单向加密算法,没有办法对加密以后的数据进行解密。
MD5Cypto Service Provider类是.NET中System.Security.Cryptography名字空间的一个类,提供专门用于MD5单向数据加密的解决方法。MD5Cypto ServiceProvider类中的主要方法:Compute Hash。Compute Hash方法只能接受数组作为加密对象,输出的密文也是数组,因此,在对字符串加密之前,我们必须首先将这些字符串转化为数组,这就要用到UTF8Encoding类的GetBytes方法,将字符串转化为数组,而加密以后的结果也是使用数组输出。以下是对text Pwd.Text(用户密码框的文本内容)进行加密的代码:
这里需要注意的是:通过MD5加密后的输出值hashed Bytys是二进制数组,要把该值存入数据库,则相应的字段类型应为Binary,16。
另外,MD5加密后的数据安全性虽然较高,但是如果设置的密码过于简单,可能会被黑客以字典攻击的方式,通过彩虹表查找到对应的明文。因此,必须提醒用户在自己遗忘范围的极限之内把密码设置得尽量长和复杂。
6 IIS的安全设置
学校网站的Web服务器大多数都是采用IIS,对IIS进行必要的安全设置,也是保证Web网站安全的一个重要方面。总的来说,对IIS安全设置主要包括两方面。
(1)Windows系统设置
1)禁用Guest账号
在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。你可以打开记事本,在里面输入一串包含特殊字符、数字、字母的长字符串,然后把它作为Guest用户的密码拷进去。
2)限制不必要的用户
去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限,并且经常检查系统的用户,删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。
3)把系统Administrator账号改名
大家都知道,Windows 2003的Administrator用户是不能被停用的,这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户,比如改成Guesycludx。
4)把共享文件的权限从Everyone组改成授权用户
任何时候都不要把共享文件的用户设置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组的,一定不要忘了改。
(2)IIS服务器设置
1)为IIS中的文件分类设置权限
除了在操作系统里为IIS的文件设置必要的权限外,还要在IIS管理器中为它们设置权限,以期做到双保险。一般而言,对一个文件夹永远也不应同时设置写和执行权限,以防止攻击者向站点上传并执行恶意代码。另外目录浏览功能也应禁止,预防攻击者把站点上的文件夹浏览个遍最后找到漏洞。一个好的设置策略是:为Web站点上不同类型的文件都建立目录,然后给它们分配适当权限。
*静态文件文件夹:包括所有静态文件,如HTM或HTML,给予允许读取、拒绝写的权限。
*脚本文件夹:包含站点的所有脚本文件,如cgi、vbs、asp等等,给予允许执行、拒绝写和读取的权限。
*EXE等可执行程序:包含站点上的二进制执行文件,给予允许执行、拒绝写和拒绝读取的权限。
2)删除不必要的应用程序映射
IIS中默认存在很多种应用程序映射,如:htw、.ida、idq、.asp、.cer、.cdx、.asa、.htr、.idc、.stm、.printer等,通过这些程序映射,IIS就能知道对于什么样的文件该调用什么样的动态链接库文件来进行解析处理。但是,在这些程序映射中,除了.asp、.aspx程序映射,其它的文件在网站上都很少用到。而且在这些程序映射中,.htr、.idq/ida、printer等多个程序映射都已经被发现存在缓存溢出问题,入侵者可以利用这些程序映射中存在的缓存溢出获得系统的权限。即使已经安装了系统最新的补丁程序,仍然没法保证安全。所以我们需要将这些不需要的程序映射删除。
为了保证Web网站的稳定安全,网站开发人员必须注意安全细节,避免安全漏洞。安全无小事,养成良好的安全习惯,是每个开发人员必备的素质。只有这样,开发出来的网站,才能让学校和用户放心。
摘要:学校网站的安全面临着日益严重的威胁。本文以网站开发的角度,从表单数据验证、使用存储过程、数据库连接字段加密、关键数据加密及IIS设置五个方面,阐述要保证网站安全应注意的代码设计/安全设置,供开发者借鉴。
关键词:数据验证,存储过程,加密,IIS
参考文献
[1]姜子罡,张一光,蔺蜀,梁成岗.从软件开发角度谈SQL注入攻击的防范.科技创新导报,2012.NO.12.
[2]戴明星,陈正奎.Web网站的安全代码设计.信息安全与通信保密2010.10.
[3]张元金.ASP动态网站的安全保护机制研究.网络安全技术与应用,2007.8.
[4]魏为民,袁仲雄.网络攻击与防御技术的研究与实践[J].信息网络安全2012.(12).