仓酷云

标题: ASP编程:提防SQL注入式进击~ [打印本页]

作者: 灵魂腐蚀    时间: 2015-2-3 23:34
标题: ASP编程:提防SQL注入式进击~
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天进击   SQL注入式进击是使用是指使用设计上的破绽,在方针办事器上运转Sql号令和停止其他体例的进击
静态生成Sql号令时没有对用户输出的数据停止验证是Sql注入进击未遂的次要缘由。
好比:
假如你的查询语句是select * from admin where username='"&user&"' and password='"&pwd&"'"

那末,假如我的用户名是:1' or '1'='1
那末,你的查询语句将会酿成:
select * from admin where username='1 or '1'='1' and password='"&pwd&"'"
如许你的查询语句就经由过程了,从而就能够进入你的办理界面。

所以提防的时分需求对用户的输出停止反省。出格式一些特别字符,好比单引号,双引号,分号,逗号,冒号,毗连号等停止转换或过滤。

需求过滤的特别字符及字符串有:
   net user
   xp_cmdshell
   /add
   exec master.dbo.xp_cmdshell
   net localgroup administrators
   select
   count
   Asc
   char
   mid
   '
   :
   "
   insert
   delete from
   drop table
   update
   truncate
   from
   %

上面是我写的两种关于处理注入式进击的提防代码,供人人进修参考!
js版的提防SQL注入式进击代码~:

[CODE START]  
<script language="javascript">
<!--
var url = location.search;
var re=/^\?(.*)(select%20|insert%20|delete%20from%20|count\(|drop%20table|update%20truncate%20|asc\(|mid\(|char\(|xp_cmdshell|exec%20master|net%20localgroup%20administrators|\"|:|net%20user|\'|%20or%20)(.*)$/gi;
var e = re.test(url);
if(e) {
alert("地址中含有不法字符~");
location.href="error.asp";
}
//-->
<script>
[CODE END]


asp版的提防SQL注入式进击代码~:
[CODE START]
<%
On Error Resume Next
Dim strTemp

If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If

strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")

strTemp = strTemp & Request.ServerVariables("URL")

If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)

strTemp = LCase(strTemp)

If Instr(strTemp,"select%20") or Instr(strTemp,"insert%20") or Instr(strTemp,"delete%20from") or Instr(strTemp,"count(") or Instr(strTemp,"drop%20table") or Instr(strTemp,"update%20") or Instr(strTemp,"truncate%20") or Instr(strTemp,"asc(") or Instr(strTemp,"mid(") or Instr(strTemp,"char(") or Instr(strTemp,"xp_cmdshell") or Instr(strTemp,"exec%20master") or Instr(strTemp,"net%20localgroup%20administrators") or Instr(strTemp,":") or Instr(strTemp,"net%20user") or Instr(strTemp,"'") or Instr(strTemp,"%20or%20") then
Response.Write "<script language='javascript'>"
Response.Write "alert('不法地址!!');"
Response.Write "location.href='error.asp';"
Response.Write "<script>"
End If
%>
[CODE END]

</p>  ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于Windows NT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;
作者: 不帅    时间: 2015-2-4 02:11
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
作者: 只想知道    时间: 2015-2-27 05:43
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
作者: 乐观    时间: 2015-3-8 22:05
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
作者: 灵魂腐蚀    时间: 2015-3-12 17:37
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
作者: 小女巫    时间: 2015-3-16 03:30
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
作者: 分手快乐    时间: 2015-3-20 02:24
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
作者: 简单生活    时间: 2015-3-20 12:42
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
作者: 因胸联盟    时间: 2015-3-20 13:27
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者: 海妖    时间: 2015-4-5 06:31
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
作者: 透明    时间: 2015-4-16 04:44
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
作者: admin    时间: 2015-4-19 05:34
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
作者: 第二个灵魂    时间: 2015-4-21 19:13
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: 柔情似水    时间: 2015-4-21 20:37
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
作者: 再现理想    时间: 2015-4-27 08:32
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
作者: 愤怒的大鸟    时间: 2015-6-3 22:38
不能只是将它停留在纸上谈兵的程度上。
作者: 深爱那片海    时间: 2015-6-11 01:44
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
作者: 金色的骷髅    时间: 2015-7-6 15:56
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
作者: 蒙在股里    时间: 2015-7-20 22:37
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
作者: 小魔女    时间: 2015-7-22 01:45
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2