APP下载

提高网站安全性的思考与建议

2015-10-20董文博宛晓霞

中国科技纵横 2015年16期
关键词:入侵者源代码浏览器

董文博 宛晓霞

(陕西烽火电子股份有限公司,陕西宝鸡 721006)

提高网站安全性的思考与建议

董文博 宛晓霞

(陕西烽火电子股份有限公司,陕西宝鸡 721006)

网站应用愈发广泛,为了降低网站入侵风险本文针对网站存在的隐患,作者结合实际工作经验提出了以下的解决方案。本文从网站安全的重要性及必要性入手,对数据库创建、代码编写、网站部署等方面进行探索研究,对可能产生的网站安全隐患逐一进行分析,根据实际工作中的经验,分别针对分析的安全隐患来源提出了建议和解决办法。

网站安全 SQL 漏洞 数据库 注入攻击

1 提高网站安全的重要性及必要性

随着信息化的发展,网站的安全性也越发重要,如果网站的安全隐患被入侵者利用,将可能造成损坏企业形象,丢失重要数据信息,甚至服务器被控制等等问题,对企业造成不可估量的损失。

2 网站安全性的主要隐患

从网站的创建到应用分析,网站安全隐患主要来自以下几个方面:

2.1 网站数据库的安全隐患

目前很多网站采用免费开源代码,且未对原网站源码进行调整,数据库位置存在可被猜解的隐患。网站数据库位置和数据库名称被入侵者获悉后,入侵者可能会利用第三方软件对数据库下载。如果数据库没有进行加密,一旦被获取,将致使重要数据被非法获取。入侵者可以根据获取的信息进一步破坏攻击网站,甚至控制网站所在的服务器。

2.2 网站源代码的安全隐患

在代码设计过程中,由于考虑不周等原因,网站本身可能存在一些漏洞,如果这些漏洞被入侵者利用,则可能造成网站源代码或者数据库信息的泄露。比如:

(1)按浏览器的约定,同一域名的cookie可以被读写,而cookie只是浏览器的,对通信协议没有影响,因此,通过很多手段进行cookies欺骗。而利用cookie漏洞,入侵者可以获取其他权限的用户访问网站数据,对网站的安全性造成影响。

(2)网站中存在SQL注入攻击的漏洞。如果网站中未对sql中的特殊字符进行过滤,利用特殊语句可以实现对数据库的注入攻击。如在某个验证页面中将变量更改为:a' or‘1'='1时,将会使原有的SQL语句发生变化,从而实现SQL的注入攻击。

2.3 网站服务器的安全隐患

服务器为网站的运行提供了可用的服务,同时也将网站数据、源码部署于服务器中,因此服务器的安全性对于网站的安全是至关重要的。如果服务器中存在的安全隐患被入侵者利用,那么将会造成存储在该服务器中的所有网站信息、数据信息的安全问题。服务器中的安全隐患主要来自于过大的用户访问权限,服务器中端口、服务漏洞以及服务器中存在的系统漏洞等。

3 提高网站安全性

3.1 数据库的安全性

3.1.1 增加数据库的隐蔽性

数据库的存储位置尽量选用非常规的存储位置,可以将数据库的扩展名用asp、asa、等具有迷惑性的格式命名,这样将能有效的阻止通过猜解获取数据库存储位置的入侵者的攻击。

3.1.2 降低数据库被下载隐患

(1)数据库文件的名称尽量用复杂的名称。在数据库名中增加“%”等特殊字符,采用这样的名称,在数据库被下载过程的特殊符号将被解析为具有特殊意义的字符,从而使得入侵者无法下载数据库文件。

(2)数据库名称扩展名改为.asp,.asa,并在数据库中添加二进制文件。这样做的作用就是:当服务器按照ASP语法解析时,会报告500错误,则能预防数据库下载。

(3)数据库名称前加#,然后修改数据库连接文件(如conn.asp)中的数据库地址。如果入侵者获取了数据库存放位置,进而下载数据时,将只能识别#号前面的部分,对于后面的自动去掉。另外,在数据库文件名中保留一些空格也能起到类似作用。

(4)对存入数据库的重要信息进行加密。

(5)使用ODBC数据源。如DBPath = Server.MapPath("../ 123/ abc/asfadf.mdb ") conn.open "driver={Microsoft Access Drivernb sp(*.mdb)}dbq=" DBPath 。如果ASP源代码失密后,数据库地址和名称也会被入侵者获取,从而下载数据库文件。如果使用ODBC数据源,在代码中显示为conn.open "ODBC-DSN名",这样即使源代码被获取,也无法获取数据库文件的地址和名称。但这样做引起的问题是如果目录移动的话,则需要重新设置数据源。

对存储重要数据信息的数据库加密,即使数据库被下载也有一定的安全性,下载的数据库中的数据信息并非直接可用。这将在一定程度上增加破解难度,从而提高数据库信息的安全。对数据库加密后,要在ASP程序中使用,就需要在ASP程序中的connection对象的open方法中增加pwd的参数。

3.2 网站源码的安全性

3.2.1 预防cookie欺骗

Cookie欺骗的主要手段有:通过浏览器直接对通信数据改写、修改浏览器使其能从本地读写任意域名的cookie、使用签名脚本实现对其他域名的cookie的读写以及欺骗浏览器以获取其他域名等多种方式。

针对cookie欺骗产生的安全隐患,可以通过对而cookie过滤和cookie过期等方法实现。比如Resonse.cookies(“CookieName”). Expires=dateadd(“s”,90,now()),该代码实现了对cookie做90秒过期处理。

3.2.2 预防Sql注入

网站中存在的SQL注入漏洞主要来自于get、post和cookie,因此对这三者进行非法字符的过滤即可(代码略)。

3.3 服务器的安全性

(1)根据服务器的应用情况,设置适当的用户权限,符合最小授权的原则。

(2)关闭多余端口、服务,配置服务器的安全策略。可以用net use关闭、删除系统默认的共享及IPC$。netstat -an命令查看计算机端口开放情况,并根据服务器中提供的应用服务情况关闭多余端口以及服务。gpedit.msc配置组策略。

(3)及时更新操作系统、IIS、tomcat、SQL的补丁程序,减少已知风险漏洞;加强对服务器的监控,定期分析系统日志、彻查异常事件,以增强服务器的安全系数,减少安全隐患。

计算机的技术在不断的发展变化,网站的安全性也随时在经受入侵者的考验。谨以此文为大家提供一些启示和建议,抛砖引玉,望读者不吝指正。

猜你喜欢

入侵者源代码浏览器
人工智能下复杂软件源代码缺陷精准校正
基于TXL的源代码插桩技术研究
反浏览器指纹追踪
“入侵者”来袭
软件源代码非公知性司法鉴定方法探析
揭秘龙湖产品“源代码”
环球浏览器
小行星2014 AA:地球的新年入侵者
俄演习用核弹击退入侵者