二战美军指挥官军装:网站安全问题?

来源:百度文库 编辑:神马品牌网 时间:2024/04/25 15:01:07
我刚做好了一个网站,打算放到网上去,由于涉及商业,所以安全问题比较担心。我用的是asp和SQL数据库。请问我应该如何预防?

目前,黑客攻击已成为一个很严重的网络问题。许多黑客甚至可以突破SSL加密和各种防火墙,攻入Web网站的内部,窃取信息。黑客可以仅凭借浏览器和几个技巧,即套取Web网站的客户信用卡资料和其它保密信息。

随着防火墙和补丁管理已逐渐走向规范化,各类网络设施应该是比以往更完全。但不幸的是,道高一尺,魔高一丈,黑客们已开始直接在应用层面对Web网站下手。市场研究公司Gartner的分析师指出,目前有70%的黑客袭击事件都发生在应用程序方面。要增强Web网站的安全性,首先要澄清五个误解。

一、“Web网站使用了SSL加密,所以很安全”

单靠SSL加密无法保障网站的安全。网站启用SSL加密后,表明该网站发送和接收的信息都经过了加密处理,但是SSL无法保障存储在网站里的信息的安全。许多网站采用了128位SSL加密,但还是被黑客攻破。此外,SSL也无法保护网站访问者的隐私信息。这些隐私信息直接存在网站服务器里面,这是SSL所无法保护的。

二、“Web网站使用了防火墙,所以很安全”

防火墙有访问过滤机制,但还是无法应对许多恶意行为。许多网上商店、拍卖网站和BBS都安装了防火墙,但依然脆弱。防火墙通过设置“访客名单”,可以把恶意访问排除在外,只允许善意的访问者进来。但是,如何鉴别善意访问和恶意访问是一个问题。访问一旦被允许,后续的安全问题就不是防火墙能应对了。

三、“漏洞扫描工具没发现任何问题,所以很安全”

自1990年代初以来,漏洞扫描工具已经被广泛使用,以查找一些明显的网络安全漏洞。但是,这种工具无法对网站应用程序进行检测,无法查找程序中的漏洞。

漏洞扫描工具生成一些特殊的访问请求,发送给Web网站,在获取网站的响应信息后进行分析。该工具将响应信息与一些漏洞进行对比,一旦发现可疑之处即报出安全漏洞。目前,新版本的漏洞扫描工具一般能发现网站90%以上的常见安全问题,但这种工具对网站应用程序也有很多无能为力的地方。

四、“网站应用程序的安全问题是程序员造成的”

程序员确实造成了一些问题,但有些问题程序员无法掌控。

比如说,应用程序的源代码可能最初从其它地方获得,这是公司内部程序开发人员所不能控制的。或者,公司可能会请一些离岸的开发商作一些定制开发,与原有程序整合,这其中也可能会出现问题。或者,一些程序员会拿来一些免费代码做修改,这也隐藏着安全问题。再举一个极端的例子,可能有两个程序员来共同开发一个程序项目,他们分别开发的代码都没有问题,安全性很好,但整合在一起则可能出现安全漏洞。

很现实地讲,软件总是有漏洞的,这种事每天都在发生。安全漏洞只是众多漏洞中的一种。加强员工的培训,确实可以在一定程度上改进代码的质量。但需要注意,任何人都会犯错误,漏洞无可避免。有些漏洞可能要经过许多年后才会被发现。

五、“我们每年会对Web网站进行安全评估,所以很安全”

一般而言,网站应用程序的代码变动很快。对Web网站进行一年一度的安全评估非常必要,但评估时的情况可能与当前情况有很大不同。网站应用程序只要有任何改动,都会出现安全问题的隐患。

网站喜欢选在节假日对应用程序进行升级,圣诞节就是很典型的一个旺季。网站往往会增加许多新功能,但却忽略了安全上的考虑。如果网站不增加新功能,这又会对经营业绩产生影响。网站应该在程序开发的各个阶段都安排专业的安全人员。

替换非法字符函数
Function SQLFixup(TextIn)
SQLFixup = Replace(TextIn, "'", "''", 1)
SQLFixup = Replace(TextIn,Chr(0),"", 1, -1, 1)
SQLFixup = Replace(TextIn, """", """, 1, -1, 1)
SQLFixup = Replace(TextIn,"<","<", 1, -1, 1)
SQLFixup = Replace(TextIn,">",">", 1, -1, 1)
SQLFixup = Replace(TextIn, "script", "script", 1, -1, 0)
SQLFixup = Replace(TextIn, "SCRIPT", "SCRIPT", 1, -1, 0)
SQLFixup = Replace(TextIn, "Script", "Script", 1, -1, 0)
SQLFixup = Replace(TextIn, "script", "Script", 1, -1, 1)
SQLFixup = Replace(TextIn, "object", "object", 1, -1, 0)
SQLFixup = Replace(TextIn, "OBJECT", "OBJECT", 1, -1, 0)
SQLFixup = Replace(TextIn, "Object", "Object", 1, -1, 0)
SQLFixup = Replace(TextIn, "object", "Object", 1, -1, 1)
SQLFixup = Replace(TextIn, "applet", "applet", 1, -1, 0)
SQLFixup = Replace(TextIn, "APPLET", "APPLET", 1, -1, 0)
SQLFixup = Replace(TextIn, "Applet", "Applet", 1, -1, 0)
SQLFixup = Replace(TextIn, "applet", "Applet", 1, -1, 1)
SQLFixup = Replace(TextIn, "[", "[")
SQLFixup = Replace(TextIn, "]", "]")
SQLFixup = Replace(TextIn, """", "", 1, -1, 1)
SQLFixup = Replace(TextIn, "=", "=", 1, -1, 1)
SQLFixup = Replace(TextIn, "'", "''", 1, -1, 1)
SQLFixup = Replace(TextIn, "select", "select", 1, -1, 1)
SQLFixup = Replace(TextIn, "execute", "execute", 1, -1, 1)
SQLFixup = Replace(TextIn, "exec", "exec", 1, -1, 1)
SQLFixup = Replace(TextIn, "join", "join", 1, -1, 1)
SQLFixup = Replace(TextIn, "union", "union", 1, -1, 1)
SQLFixup = Replace(TextIn, "where", "where", 1, -1, 1)
SQLFixup = Replace(TextIn, "insert", "insert", 1, -1, 1)
SQLFixup = Replace(TextIn, "delete", "delete", 1, -1, 1)
SQLFixup = Replace(TextIn, "update", "update", 1, -1, 1)
SQLFixup = Replace(TextIn, "like", "like", 1, -1, 1)
SQLFixup = Replace(TextIn, "drop", "drop", 1, -1, 1)
SQLFixup = Replace(TextIn, "create", "create", 1, -1, 1)
SQLFixup = Replace(TextIn, "rename", "rename", 1, -1, 1)
SQLFixup = Replace(TextIn, "count", "count", 1, -1, 1)
SQLFixup = Replace(TextIn, "chr", "chr", 1, -1, 1)
SQLFixup = Replace(TextIn, "mid", "mid", 1, -1, 1)
SQLFixup = Replace(TextIn, "truncate", "truncate", 1, -1, 1)
SQLFixup = Replace(TextIn, "nchar", "nchar", 1, -1, 1)
SQLFixup = Replace(TextIn, "char", "char", 1, -1, 1)
SQLFixup = Replace(TextIn, "alter", "alter", 1, -1, 1)
SQLFixup = Replace(TextIn, "cast", "cast", 1, -1, 1)
SQLFixup = Replace(TextIn, "exists", "exists", 1, -1, 1)
SQLFixup = Replace(TextIn,Chr(13),"<br>", 1, -1, 1)
End Function

给你一段防注入的函数

使用方法
SQLFixup(参数值)

但是我看不太明白!那段代码怎么使用啊?
您又有什么建议?

提问者: doulixiao - 试用期 一级

最佳答案
代码使用办法:

比如网上有两个个输入筐,一个是用户名,一个用户密码。

那么SQL语句验证密码是
string userid = txtUserid.Text;
string szSQL = "select * from user where userid = '" + userid + "';

如果要防止sql注入

要写成string userid = SQLFixup(txtUserid.Text);
string szSQL = "select * from user where userid = '" + userid + "';

楼上所说的这些都是比较复杂的来解决,而且这些防护经常会被攻破,告诉您一个最简单的方法就是对网站web做一个外部监控,网站的监控预警系统,来检测这个网站的变动从而我们就对网站好管理了,就不用每天担心网站被篡改了。 网站监控预警系统你可以百度里搜一下都有的,因为这里不能放网址所以您搜一下吧。

网上有许多这方面的软件,去迅雷打“网站安全工具”下载就可以啦!但软件一般更新不快,没有在线的网站安全平台好,较好的有亿思安全平台,里面有免费的网站安全检测,界面也挺友善的,直接在百度打iiscan就可以啦!!