|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题法式|防注入|防注入 sql注入被那些菜鸟级其余所谓黑客高手玩出了味道,,发明如今大局部黑客入侵都是基于sql注入完成的
,哎,,谁让这个入门轻易呢,好了,,不说空话了,,如今我入手下手说假如编写通用的sql防注入法式
普通的http恳求不过乎 get 和 post,所以只需咱们在文件中过滤一切post或get恳求中的参数信息中
不法字符便可,所以咱们完成http 恳求信息过滤就能够判别是是不是遭到sql注入进击。
iis传递给asp.dll的get 恳求是是以字符串的模式,,当 传递给Request.QueryString数据后,,
asp解析器会剖析Request.QueryString的信息,,然后依据"&",分出各个数组内的数据
所以get的拦阻以下
起首咱们界说恳求中不克不及包括以下字符
'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare
各个字符用"|"离隔,,然后咱们判别的失掉的Request.QueryString
详细代码以下
dim sql_injdata
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=****>alert('世界片子同盟SQL通用防注入体系提醒↓nn请不要在参数中包括不法字符测验考试注入!');history.back(-1)</Script>"
Response.end
end if
next
Next
End If
如许咱们就完成了get恳求的注入的拦阻,然而咱们还要过滤post恳求,所以咱们还得持续思索request.form,这个也是以数组模式存在的,,咱们只需求再进一次轮回判别便可。代码以下
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=****>alert('世界片子同盟SQL通用防注入体系提醒↓nn请不要在参数中包括不法字符测验考试注入!nnHTTP://www.521movie.com ');history.back(-1)</Script>"
Response.end
end if
next
next
end if
好了半途而废,,咱们已完成了get和post恳求的信息拦阻,,你只需求在conn.asp之类的翻开数据库文件之前援用这个页面便可。宁神的持续开辟你的法式,,不必再思索是不是还会遭到sql注入进击。岂非不是么?
</p> Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来; |
|