第二个灵魂 发表于 2015-1-16 23:15:03

ASP网页设计ASP+SQL Server构建网页防火墙

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就不用说了,

分手快乐 发表于 2015-1-19 06:28:53

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件

再见西城 发表于 2015-1-24 09:54:27

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

莫相离 发表于 2015-1-26 19:12:15

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

老尸 发表于 2015-2-7 19:19:32

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

飘飘悠悠 发表于 2015-2-23 02:15:39

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

爱飞 发表于 2015-3-7 05:21:18

完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。

谁可相欹 发表于 2015-3-14 11:23:22

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

因胸联盟 发表于 2015-3-21 04:59:19

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
页: [1]
查看完整版本: ASP网页设计ASP+SQL Server构建网页防火墙