仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 737|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页设计在ASP中过滤用户输出 进步平安性

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:44:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;平安|平安性|平安|平安性平安关于一切使用程序来讲都是非常主要的。一个复杂使用程序里的某个掉误城市形成对数据库大概其他企业资本未经受权的会见,因而平安特别主要。一种经常使用的打击办法是将命令嵌进到用户的回应里,而从用户输出里过滤失落这些不法的字符就可以够避免这类打击。


同意用户输出不法的字符会增添用户招致成绩的时机。比方,良多使用程序都可以承受用户在SQL命令里增添的WHERE子句。歹意用户会经由过程向其输出的信息里增添分外命令的办法,来实行数据库服务器上的代码。比方,他们不是输出“Smith”,将其作为检索字符串,而是输出“Smith;EXECmaster..xp_cmdshelldir*.exe”。

上面这段代码是计划用来处置从服务器前往的多个Recordset的。用户的输出会包括一个分外的、未意料的的实行命令。当NextRecordset办法被挪用的时分,暗藏的歹意代码就会被实行。

这一打击能够经由过程过滤失落用户输出信息中的不法字符(在正文段里)来制止。如许做了以后,用户的输出仍旧被同意处置,可是扫除失落了一切的不法字符。

DimrstAsRecordset
Dimrst2AsRecordset
DimstrUserInputAsString

strUserInput="Smith;EXECmaster..xp_cmdshelldir*.exe"

Filterinputforinvalidcharacters
strUserInput=Replace(strUserInput,"<",vbNullString)
strUserInput=Replace(strUserInput,">",vbNullString)
strUserInput=Replace(strUserInput,"""",vbNullString)
strUserInput=Replace(strUserInput,"",vbNullString)
strUserInput=Replace(strUserInput,"%",vbNullString)
strUserInput=Replace(strUserInput,";",vbNullString)
strUserInput=Replace(strUserInput,"(",vbNullString)
strUserInput=Replace(strUserInput,")",vbNullString)
strUserInput=Replace(strUserInput,"&",vbNullString)
strUserInput=Replace(strUserInput,"+",vbNullString)
strUserInput=Replace(strUserInput,"-",vbNullString)

Setrst=NewRecordset
rst.ActiveConnection="PROVIDER=SQLOLEDB;DATASOURCE=SQLServer;"&_
"InitialCatalog=pubs;IntegratedSecurity=SSPI"
rst.Open"Select*fromauthorswhereau_lname="&strUserInput&_
"",,adOpenStatic
Dosomethingwithrecordset1

Setrst2=rst.NextRecordset()
Dosomethingwithrecordset2

在用户的输出中嵌进命令也是打击ASPWeb使用程序的一种罕见伎俩,也叫做跨网站剧本打击。过滤输出的内容并利用Server.HTMLEncode和Server.URLEncode这两个办法会有助于避免你ASP使用程序里这类成绩的产生。</p>缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。
分手快乐 该用户已被删除
9#
发表于 2015-3-26 22:01:43 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
柔情似水 该用户已被删除
8#
发表于 2015-3-19 01:29:50 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
透明 该用户已被删除
7#
发表于 2015-3-11 16:35:00 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
若天明 该用户已被删除
6#
发表于 2015-3-4 04:26:42 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
小女巫 该用户已被删除
5#
发表于 2015-2-14 03:45:37 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
变相怪杰 该用户已被删除
地板
发表于 2015-2-5 23:11:51 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
海妖 该用户已被删除
板凳
发表于 2015-1-29 06:56:51 来自手机 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-20 11:29:58 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 19:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表