说到安全,大家肯定会不由自主地想起类似防火墙之类的专业安全保障软件,难到非要有软件才能达到安全防范的目的吗?不,这里我们使用ASP,同样也能实现简单地防范网页安全的功能。下面笔者就举例来说明如何实现一个简单的页面安全防范功能,此页面只允许本单位内部网的用户访问,如果是单位外部用户进行访问则要求输入访问密码。
在此主要使用request对象的ServerVariables属性,通过它来获得环境变量的值。使
用的语法为:Request.ServerVariables(variable),“variable”表示环境变量的名称,如服务器主机名称、WEB服务器软件名等等,若“variable”为“REMOTE_ADDR”则表示访问者的IP地址,通过它就可以实现IP地址的过滤。
源程序如下:(文件名:demo.asp)
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=gb_2312-80”>
<meta name=“GENERATOR” content=“Microsoft FrontPage Express 2.0”>
<style>
<!--
.as{ line-height: 15px; font-size: 9pt }
a:hover {color: rgb(0,51,240);text-decoration:underline}
.p9 { font-family: “宋体”; font-size: 9pt; line-height: 15pt}
.p12 { font-family: “宋体”; font-size: 12pt; line-height: 18pt}
a:link { text-decoration: none;}
a:visited { text-decoration:none;}
a:hover {text-decoration: underline;font-size: 125%;color:blue}
-->
</style>
<title>ASP页面防火墙功能演示</title>
</head>
<body background=“back.jpg”>
<%
′使用Request.ServerVariables(“REMOTE_ADDR”)得到IP地址并保存在变量rip中
rip=Request.ServerVariables(“REMOTE_ADDR”)
strip=cstr(rip)
′取得IP地址第三个段的值并保存到strip中
for i=1 to 2
strip=right(strip,len(strip)-instr(1,strip,“.”))
next
strip=left(strip,instr(1,strip,“.”)-1)
′IP地址有效性检验及密码验证,包括两方面的内容:
′如果IP地址符合则通过验证;如果IP地址不符合则检验输入的密码是否正确(此处密码为“asp”)
if (left(rip,5) <> “127.1” or strip<“1” or strip>“50”) and request(“Passwd”)<>“asp” then
%>
<p><font color=“#FF0000”>对不起,你的IP是<%=rip%>,本页面可以访问的IP是127.1.1.*到127.1.50.*之间,如果你是本单位内部网的用户,请确认你的浏览器没有使用代理!<BR></font></p>
<form action=“demo.asp” method=“POST” id=form1 name=form1>
<p>请输入访问密码:<input type=“password” name=“Passwd” > <input type=“submit” value=“确认” name=“B1”>;
</p>
</form>
<%else %>
′合法用户可以访问的页面,在此可以加入任何信息
祝贺您,您已经顺利通过了页面的安全认证,可以直接使用本站点的资源!
<%end if%>
</body>
</html>
实际使用只要稍微修改上面的程序(如IP地址等信息)就可以了,当然这只是在一个页面中实现了安全防范功能,如果一个网站有多个页面的话,可以设置一个session变量来对用户进行标志,以在后面的页面中进行判断。
上面只是ASP的一个很简单的应用,其实使用ASP可以实现许多动态或者其他交互形式的功能,如果您想详细了解ASP的用法,可以到具体的ASP网站上去参考相关内容。
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式