作为网络管理员,不少朋友也同时负责单位的网站开发维护的工作,对于WEB开发我想大家都比较精通,可是对如何编写安全的脚本代码和入侵者如何通过WEB方式对服务器进行渗透的,可能就不是很清楚了,有不少朋友错误的认为我的服务器有硬件防火墙,而且只开了80端口,是不会有网络安全问题的。下面我就向大家介绍几种比较常见的脚本攻击的方法,让大家从中能够找到安全防护的方法,从而提高服务器的安全性。
1. 简单的脚本攻击
此类攻击是由于WEB程序编写上对特殊字符过滤不严密所造成的,虽说不能对服务器的安全造成严重威胁,可是却可以使入侵者发布含有HTML语句的恶意代码,扰乱网站秩序,从而对网站产生不良影响。下面给大家举个例子:某网站在进行用户注册时,没有对特殊字符进行过滤,就有可能被无聊者利用,假设论坛的管理员ID为:webmaster,那就有可能有人在注册用户名时注册成 webmaster ,尽管ID有区别,可是在页面显示却是一样的,如果无聊者把其他的信息改的和webmaster一样,那别人就很难区分这两个ID哪个是真的哪个是假的。有不少网站有自己开发的留言板,而且支持提交HTML留言,这就给破坏者提供了机会,他们可以写一个自动弹出窗口并打开一个带木马的网页的代码,这样别人在浏览这条留言时就有可能被种下木马。防范方法很简单,加个过滤函数就可以了:
〈%
function SqlCheck(fString)
fString = Replace(fString, "'","")
fString = Replace(fString, " ","")
fString = Replace(fString, ";","")
fString = Replace(fString, "--","")
fString = Replace(fString, ",","")
fString = Replace(fString, "(","")
fString = Replace(fString, ")","")
fString = Replace(fString, "=","")
fString = Replace(fString, "%","")
fString = Replace(fString, "*","")
fString = Replace(fString, "<","")
fString = Replace(fString, ">","")
SqlCheck = fString
end function
%〉
以上过滤函数中的String = Replace(fString, "<","") fString = Replace(fString, ">","")可以去掉语句中的“<”和“>”符号,使HTML代码无法运行。
2. Sql Injection 漏洞攻击
也叫Sql注入攻击,是目前比较常见的一种WEB攻击方法,它利用了通过构造特殊的SQL语句,而对数据库进行跨表查询的攻击,通过这种方式很容易使入侵者得到一个WebShell,然后利用这个WebShell做进一步的渗透,直至得到系统的管理权限,所以这种攻击方式危害很大。建议大家使用NBSI,小榕的WED+WIS等注入工具对自己的网站扫描一下,看是否存在此漏洞。还有一种比较特殊的Sql注入漏洞,之所以说比较特殊,是因为它是通过构造特殊的SQL语句,来欺骗鉴别用户身份代码的,比如入侵者找到后台管理入口后,在管理员用户名和密码输入“'or '1'='1'”、“'or''='”、“') or ('a'='a”、“" or "a"="a”、“' or 'a'='a”、“' or 1=1--”等这类字符串(不包含引号),提交,就有可能直接进入后台管理界面,由此也可以看出对特殊字符进行过滤是多么的重要。还有一点要注意,一定不要让别人知道网站的后台管理页面地址,除了因为上面的原因外,这也可以防止入侵者通过暴力破解后台管理员用户名和密码等方法进入后台管理。这类攻击的防范方法除了加上面提到的过滤函数外,还要屏蔽网站的错误信息,同时也需要配置好IIS的执行权限,以前的杂志也详细介绍过防范方法,在这里不做详细说明。
3.对整站系统和论坛的攻击
不少网站使用一些比如动易,乔客,动网,BBSXP等知名度高,功能强大的系统和论坛,由于这些系统的功能强大,所以不可避免的就带来了不小的安全风险。因为可以从网上直接得到这些系统的代码,再加上使用这些系统的网站比较多,所以研究这些系统漏洞的人也就很多,我们也就经常会在网上可以看到某某系统又出最新漏洞的文章,建议大家经常不定期的去这些系统的官方网站下载最新的补丁。
本文主要是为了让广大的WEB程序开发人员提高安全意识和找到防范入侵者的方法,通过研究上面的一些入侵方法来防范入侵者的攻击,请大家不要利用本文介绍的一些方法用于攻击别人上,由本文方法造成任何损失,由使用者负责,本人概不负责。