|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 具有自进击性的代码 写出这类代码的法式员假如被点破那末必定会被以为是大脑进水,然而这类的代码已漫天飘动乃至成为叶子以为进击网站的最好手腕之一,现看上面的一段代码:
<%set dbr = server.createobject("adodb.recordset")
dbr.open "SELECT * from testapp where id="& request("id") ,session("DS"),1,1
for i = 1 to dbr.recordcount %>
<%=dbr("id")%>-<%=dbr("title")%><br>
dbr.movenext
next
dbr.close
set dbr=nothing %>
这段代码是依据输出ID前往ID相干的题目称号,响应的数据库机关剧本为
CREATE TABLE [dbo].[testapp] (
[id] [int] NOT NULL , [title] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
然而这个剧本并没有任何的平安反省功效,如许的剧本就是一个体系破绽,先看一下正常剧本的履行情形:在阅读器中正常的敲上天址http://127.0.0.1/testapp/index.asp?id=5
将看到正常的显示了局
</IMG>
图-2 但假如输出特别的恳求,如http://127.0.0.1/testapp/index.asp?id=5;update%20testapp%20set%20id=id%2b%201
这时候候这段代码中阅读器并没有任何显示
</IMG>
图-3
好象甚么都没有履行,实践上在外部数据就已变更了,看上面的SQL SERVER的屏幕履行前的数据如图
</IMG>
图-4 履行后的数据,
如图
</IMG>
图-5 可见表中数据ID列全体增添了1,正合适在毗连地址栏中巧入的毗连http://127.0.0.1/testapp/index.asp?id=5;update%20testapp%20set%20id=id%2b%201
其实对这个毗连解码再联合法式可以失掉SQL语句 SELECT * from testapp where id=5;update testapp set id=id + 1 毗连中的%20是空格的16进制代码%2b是“+”的十六进制代码
因而构成了以上语句。因为个中分号的感化SQL SERVER将一行SQL语句分化成若干行语句履行因而在履行过SELECT * from testapp where id=5语句后再次履行update testapp set id=id + 1语句使ID列增添1 这个后部的update testapp set id=id + 1也能够依据进击的需求交换成delete 和 insert乃至在权限答应的前提下可使用xp_cmdshell履行CMD号令。
asp可以使用微软的activeX 使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般 |
|