|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。asp+|server|防火墙|网页为网页设置防火墙的次要目标是依据网页内容对分歧来访者供应分歧的服务,使用JavaScript或VBScript,我们很简单做到这一点。但网页的源码在客户扫瞄器中能够被看到,会见者能够检察所用的用户判别办法,这只是一个外表情势的防火墙。ASP是Web上的客户机/服务器布局的两头层,固然它利用剧本言语(JavaScript,VBScript等)编写,程序代码在服务器上运转,在客户端仅可看到由ASP输入的静态HTML文件,但ASP仍具有某些毛病,接纳必定手腕也能够看到ASP程序的源码。这时候,经由过程ASP与SQLServer相分离,我们能够计划出复杂、高效、牢靠的使用程序。上面复杂先容一下其创建历程。
1、创建Login
在SQLServer上创建会见者的Login和Password。
2、在收集服务器上创立数据库DSN
利用“把持面板”中的“ODBC数据源办理器”创立某个数据库的ODBC数据资本名,即DSN,如许今后能够经由过程利用数据库DSN毗连详细的数据库。
“ODBC数据源办理器”供应了三种DSN,分离为用户DSN、体系DSN和文件DSN。个中,用户DSN会把响应的设置信息保留在Windows的注册表中,可是只同意创立该DSN的登任命户利用。体系DSN一样将有关的设置信息保留在体系注册表中,可是与用户DSN分歧的是体系DSN同意一切登录服务器的用户利用。
与上述两种数据库DSN分歧,文件DSN把详细的设置信息保留在硬盘上的某个详细文件中。文件DSN同意一切登录服务器的用户利用,并且即便在没有任何用户登录的情形下,也能够供应对数据库DSN的会见撑持。别的,由于文件DSN被保留在硬盘文件里,以是能够便利地复制到别的呆板中。如许,用户能够不合错误体系注册表举行任何修改便可间接利用在别的呆板上创立的DSN。
在以上三种数据库DSN中,倡议用户选择体系DSN或文件DSN,假如用户更喜好文件DSN的可移植性,能够经由过程在NT体系下设定文件的会见权限取得较高的平安保证。
创建新的DSN,用户起首选择“增加”,然后在弹出窗口当选择用户将要创建毗连的数据库范例并选择列表中的“SQLServer”项。假如用户是创建文件DSN,则单击“下一步”按钮并在随后的对话框中输出所要创建的文件DSN的文件名和保留路径。假如用户创建的是体系DSN,单击“完成”按钮。
在选择完数据库以后,用户必要对数据库DSN举行设置。用户必要选择供应数据库服务的详细服务器,设定登任命户名和口令,和用户将要毗连的数据库。
3、程序计划
上面要完成的就是一个复杂的页面防火墙的功效。此页面只限定本单元外部网的用户举行会见(在此假定外部网的IP地点是从10.61.96.至10.65.97.之间),假如是单元内部用户举行会见则请求输出会见用户名及暗码。在此要利用到request工具的ServerVariables属性,经由过程它来取得情况变量的值。
程序源码(firewall.asp)以下:
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb_2312-80">
<metaname="GENERATOR"content="MicrosoftFrontPageExpress2.0">
<title>firewall.asp</title>
</head>
<bodybackground="#800080">
<%
利用Request.ServerVariables("REMOTE_ADDR")失掉IP地点并保留在变量remoteip中
remoteip=Request.ServerVariables("REMOTE_ADDR")
stip=cstr(remoteip)
获得IP地点第三个段的值并保留到stip中
fori=1to2
stip=right(stip,len(stip)-instr(1,stip,"."))
next
stip=left(stip,instr(1,stip,".")-1)
IP地点无效性查验及暗码考证,包含两方面的内容:假如IP地点切合则经由过程考证;假如IP地点不切合则查验输出的用户名、暗码是不是准确
if(left(remoteip,5)<>"10.61"orstip<"96"orstip>"97")then
username=request.form("t1")
password=request.form("t2")
Setfs=CreateObject("Scripting.FileSystemObject")
Setthisfile=fs.OpenTextFile("dsn.txt")
db_loc=thisfile.readline
thisfile.close
cnstr=db_loc&&"uid="&&username&&";"&&"pid="&&password
onerrorresumenext
setcn=server.createobject("adodb.connection")
cn.opencnstr
iferr=3709then%>
<p><fontcolor="#FF0000">对不起,用户:<%=username%>没有会见权限,或暗码不准确!<BR></font></p>
<formmethod="POST">
<palign="center">用户名:<inputtype="text"name="T1"size="20">口令:<inputtype="password"name="T2"size="20"><inputtype="submit"value="提交"name="B1"><inputtype="reset"value="全体重写"name="B2">
</p>
</form>
<%endif
cn.close
setcn=nothing%>
<%else%>
祝贺您,您已经由过程了考证,能够间接利用本站点的资本!
<%endif%>
</body>
</html>
略微修正一下下面如IP地点等信息,该程序就能够运转了。
固然,下面只是完成在一个页面中的防火墙功效。假如一个网站有多个页面的话,能够设置一个session变量来对用户举行标记,鄙人面的页面中都举行判别。</p>对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了, |
|