×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
酷素材!视频教程打包下手绘教程抠图教程路径专辑photoshop cs3视频教程
查看: 4870|回复: 0

[asp.net] 使用ASP记录在线用户的数量

[复制链接]
发表于 2010-6-14 13:39:11 | 显示全部楼层 |阅读模式
使用ASP记录在线用户的数量
网络的访问量是每一个做网站的网友们都非常关心的问题。如何得知有多少个人正在访问你的网站呢?如何将每天的访问量记录下来? 下面就是一个解决方案。  当有用户开始访问网站时,服务器端的Global.asa将会被访问将会给用户开启一个Session。可以给每一个用户设置自己的个人用户信息。这里就不多进行解释了。在Global.asa中有当Application启动和Session启动时的消息响应函数。可以敲入如下的代码。
 < SCRIPT LANGUAGE="VBScript" RUNAT="Server" >;

 Sub Application_OnStart

   ’ 当服务器开启时,设置用户数为0

 Application("Users") = 0
 End Sub
 Sub Session_OnStart
 Session.Timeout = 20
   ’ 当开始一个Session时用户数加1

 Application.Lock
 Application("Users") = Application("Users") + 1
 Application.UnLock
 End Sub
 Sub Session_OnEnd

   ’ 当结束一个Session时用户计数器减1
 Application.Lock
 Application("Users") = Application("Users") - 1

 Application.UnLock
 End Sub
 < /SCRIPT >在网站运行时,Application变量 Application("Users")将一直记录网站的在线人数。可以在任何一个网页中使用写出在线用户的数量。至于记录,则可以使用很多的方法。如果是记录到文件中,可以使用Scripting.FileSystemObject物件进行处理。如果记录到数据库中,则可以使用ADO等等。这里就不一一介绍了。
ASP注入应用漏洞解决方法整理
1ASP程序连接 SQL Server 的账号不要使用sa,或任何属于Sysadmin组的账号,尽量避免应用服务有过高的权限,应使用一个db_owner权限的一般用户来连接数据库。 2、WEB应用服务器与DB服务器分别使用不同的机器来存放,并且之间最好通过防火墙来进行逻辑隔离,因为除了有程序在探测 sa 没密码的SQL Server,SQL Server 本身及大量的扩展存储过程也有被溢出攻击的危险。
3、数据库服务器尽量不要与公网进行连接,如果一定要直接提供公网的连接存储,应考虑使用一个非标准端口并限制IP地址来进行连接。
4、SA一定要设成强悍的密码,尤其是SQL Server 2000以前的版本,在默认安装Sql时sa账号没有密码,而一般管理员装完后也忘了或怕麻烦而不更改密码。
5、改掉缺省的Web虚拟路径,不要使用IIS装好后预设的<系统盘>\Inetpub\WWWRoot路径,否则利用前面叙述的另存为方式,很容易在该目录下动手脚。
6、将平时不使用的但功能强大的扩展存储过程删除。
7、使用网络和主机IDS来监控重要系统的运行状况。
8、随时注意是否有新的补丁需要补上,目前SQL2000最新的补本包为SP4。
9、尽量的利用ASP 或者 ASP.NET 在服务器端检查与限制输入变量的类型与长度,过滤掉不需要的内容。要注意的是这些检查不只是要放在前端,后端也要检测。 在前端利用Html Input 标签的MaxLength属性来限制输入长度,或是以JScript编写程序来限定文本域的长度,但是只要将该网页另存为,修改内容后(一般只要改写Form的Action属性以及Input的MaxLength属性),重新用浏览器打开更改过后的页面就可以躲过这些浏览器前端的检查。
10、使用容错语句,不要显示错误信息到前端,利用VBScript语法的On Error Resume Next来屏蔽SQL的出错提示,并搭配If Err.Number<>0 Then的错误处理方式,自行将错误重定向到适当的错误处理网页,如此系统将更稳固,且黑客也不容易透过错误信息来探知系统的内部运作方式。或者,也可以修改<系统盘>\Winnt\Help\iisHelp\common\500-100.asp预设网页,最简单的方式就是将它改名。例:

on error resume next
sql2="select * from dv_admin where username='"&ReqStr("username")&"'"

11、使用过滤和防注入函数来过滤掉一些特殊的字符,防注入函数示例:

'----------------------------------- ----------------------------
Function ReqNum ( StrName ) /* 数值型变量过滤 */
ReqNum = Request ( StrName )
if Not isNumeric ( ReqNum ) then
Response.Write "参数必须为数字型!" Response.End
End if
End Function
Function ReqStr ( StrName ) /*字符型和搜索型过滤 */
ReqStr = Replace ( Request(StrName), "'", "''" ) /* 用replace函数屏蔽单引号 */
End Function
以下三句SQL语句,说明一下调用方法:
1.SQL="select * from dv_admin where username=" & ReqNum("username")2.SQL="select * from
dv_admin where username ='" &
ReqStr(" username ") & "'" 3.SQL="select * from username where UserName like '%" & ReqStr
(" username ") & "%'"
12、若想更换SQL Server 的执行服务账号,则该帐号需要以下的权限:
Log On Locally
Log On as a Batch
Access this computer from the Network
Log on as service
Replace a process level token
Act as part of the operating system
Increase quotas

13、使用Microsoft基线安全性分析器(MBSA)来评估服务器的安全性,并按照它的建议来更改系统的设定。
MBSA 是一个扫描多种Microsoft产品的不安全配置的工具,包括SQL Server和Microsoft SQL Server 2000 Desktop Engine(MSDE 2000)。它可以在本地运行,也可以通过网络运行。
该工具针对下面问题对SQL Server安装进行检测:
(1) 过多的sysadmin固定服务器角色成员。   
(2) 授予sysadmin以外的其他角色创建CmdExec作业的权利。   
(3) 空的或简单的密码。   
(4) 脆弱的身份验证模式。   
(5) 授予管理员组过多的权利。   
(6) SQL Server数据目录中不正确的访问控制表(ACL)。   
(7) 安装文件中使用纯文本的sa密码。   
(8) 授予guest帐户过多的权利。   
(9) 在同时是域控制器的系统中运行SQL Server。   
(10) 所有人(Everyone)组的不正确配置,提供对特定注册表键的访问。   
(11) SQL Server 服务帐户的不正确配置。   
(12) 没有安装必要的服务包和安全更新。
本帖的地址:http://bbs.jcwcn.com/forum.php?mod=viewthread&tid=309643
跟着教程做一遍,做完的图要到这里评论交作业,教程有看不懂的地方,可以在贴子下面评论
发表于 2018-1-12 18:23:38 | 显示全部楼层
酷素材
顶顶多好
回复 支持 反对

使用道具 举报

发表于 2018-1-12 18:13:50 | 显示全部楼层
说的非常好
回复 支持 反对

使用道具 举报

发表于 2018-1-12 18:19:49 | 显示全部楼层
LZ真是人才
回复 支持 反对

使用道具 举报

发表于 2018-1-12 18:36:08 | 显示全部楼层
酷素材
学习了。。。
回复 支持 反对

使用道具 举报

发表于 2018-1-12 18:47:17 | 显示全部楼层
酷素材
楼主我支持你
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | [立即注册]

本版积分规则

2345