ASP和SQL Server如何构建网页防火墙
ASP是Web上的客户机/服务器结构的中间层,虽然它使用脚本语言(Java Script,VB Script等)编写,程序代码在服务器上运行,在客户端仅可看到由ASP输出的动态HTML文件,但ASP仍具有某些漏洞,采取一定手段也可以看到ASP程序的源码。这时,通过ASP与SQL Server相结合,我们可以设计出简单、高效、可靠的应用程序。
为网页设置防火墙的主要目的是根据网页内容对不同来访者提供不同的服务,利用Java Script或VB Script,我们很容易做到这一点。但网页的源码在客户浏览器中可以被看到,访问者可以查看所用的用户鉴别方法,这只是一个表面形式的防火墙。
下面简单介绍一下其建立过程。
一、建立Login
在SQL Server上建立访问者的Login和Password。
二、在网络服务器上创建数据库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,用户首先选择“添加”,然后在弹出窗口中选择用户将要建立连接的数据库类型并选择列表中的“SQL Server”项。如果用户是建立文件DSN,则单击“下一步”按钮并在随后的对话框中输入所要建立的文件DSN的文件名和保存路径。如果用户建立的是系统DSN,单击“完成”按钮。
在选择完数据库之后,用户需要对数据库DSN进行设置。用户需要选择提供数据库服务的具体服务器,设定登录用户名和口令,以及用户将要连接的数据库。
三、程序设计
下面要实现的就是一个简单的页面防火墙的功能。此页面只限制本单位内部网的用户进行访问(在此假设内部网的IP地址是从10.61.96. 至10.65.97. 之间),如果是单位外部用户进行访问则要求输入访问用户名及密码。在此要使用到request对象的ServerVariables属性,通过它来获得环境变量的值。
程序源码(firewall.asp)如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80"> <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0"> <title>firewall.asp</title> </head> <body background="#800080 "> "使用Request.ServerVariables("REMOTE_ADDR")得到IP地址并保存在变量remoteip中 remoteip=Request.ServerVariables("REMOTE_ADDR") stip=cstr(remoteip) 取得IP地址第三个段的值并保存到stip中 for i=1 to 2 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" or stip<"96" or stip>"97") then username=request.form("t1") password=request.form("t2") Set fs = CreateObject("Scripting.FileSystemObject") Set thisfile = fs.OpenTextFile("dsn.txt") db loc=thisfile.readline thisfile.close cnstr=db_loc "uid=" username " "pid=" password on error resume next set cn=server.createobject("adodb.connection") cn.open cnstr if err=3709 then %> <p><font color="#FF0000">对不起,用户:<%=username%>没有访问权限,或密码不正确! <BR></font></p> <form method="POST"> <p align="center"> 用户名:<input type="text" name="T1" size="20"> 口令:<input type="password" name="T2" size="20"> <input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"> </p> </form> <%end if cn.close set cn=nothing%> <%else %> 恭喜您,您已经通过了验证,可以直接使用本站点的资源! <%end if%> </body> </html>
稍微修改一下上面如IP地址等信息,该程序就可以运行了。
当然,上面只是实现在一个页面中的防火墙功能。如果一个网站有多个页面的话,可以设置一个session变量来对用户进行标志,在下面的页面中都进行判断。
希望通过本文的介绍,能够给你带来帮助。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 ASP和SQL Server如何构建网页防火墙
相关文章
- php和asp网络验证码,Verifycode 1个简单的网页图片验证码的示例程序,基本上现有 字和字母都可以识别。 WEB(ASP,PHP,…) 238万源代码下载- www.pudn.com…
- ORA-21520: database server driver not installed ORACLE 报错 故障修复 远程处理
- ORA-26859: Server “string” is not an XStream outbound server ORACLE 报错 故障修复 远程处理
- ORA-00038: Cannot create session: server group belongs to another user ORACLE 报错 故障修复 远程处理
- SQL Server 2016 TempDb里的显著提升
- .NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Ruby/Shell/Agile/CSS/HTML/HTTP/Unix/Linux大量PDF书籍/电子书籍下载, Effective Java 下载详解编程语言
- 实现高效的SQL Server数据库设计(sqlserver设计)
- 如何优化SQL Server性能?(sqlserver优化)
- 数据ASP 实现MySQL数据库更新(asp更新mysql)
- sql server的竞争者Oracle争夺微软SQLServer权益(oracle是微软)
- VS中SQL Server的完美遇见(vs中sqlserver)
- SQL Server:实现高度数据分析(sqlserver高低位)
- 变SQL Server端口号更改:指南与实践(sqlserver端口改)
- 深入研究SQL Server日志表(sqlserver日志表)
- SQL Server带你深入云盘的技术必修之路(sqlserver 度盘)
- SQL Server广播:分享信息世界大舞台(sqlserver广播)
- SQL Server分支技术:实现高效开发(sqlserver 分支)
- SQL Server会查?——大城小胆不敢试试(sqlserver会查吗)
- 用SQL Server 2000个人版搭建个人数据库(sqlserver2000个人版)
- 轻享SQL Server:让数据库表现更加轻盈起来(轻量sqlserver)
- 数据交互实现ASP页面与MySQL数据交互最佳方法(asp页面与mysql)
- ASP网页MySQL注入及防御研究(asp页面mysql注入)
- ASP读取MySQL数据库操作变慢的原因分析(asp+读取mysql慢)
- ASP构建MySQL数据库从零出发(asp数据库mysql)
- ASP技术点缀MySQL之美展示精彩绚丽(asp展示mysql)
- 用ASP搭建MySQL网站技术实例(asp mysql 网站)
- 数据库ASP连接Oracle数据库简单实现实时数据访问(asp连续oracle)
- ASP与Oracle联手,智慧集群打造Web应用(asp和oracle联用)
- ASP.NET获取各级目录Server.MapPath详解全