首页 > 安全 > 关键词  > 正文

ASP网页防SQL注入的代码

2007-07-04 09:23 · 稿源:中国站长站

近日笔者的小站遭受到SQL入侵,于是上网搜索了一些相关防SQL注入的方法。

版本颇多,有人觉得这段好用,有人以为那段才行,因此综合整理了一下,包含以下几种:

以下为引用的内容:
<%
Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx
'---定义部份 头------
Fy_Cl = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向
Fy_Zx = "index.Asp" '出错时转向的页面
'---定义部份 尾------

On Error Resume Next
Fy_Url=Request.ServerVariables("QUERY_STRING")
Fy_a=split(Fy_Url,"&")
redim Fy_Cs(ubound(Fy_a))
On Error Resume Next
for Fy_x=0 to ubound(Fy_a)
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)
Next
For Fy_x=0 to ubound(Fy_Cs)
If Fy_Cs(Fy_x)<>"" Then
If Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then
Select Case Fy_Cl
Case "1"
Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&" 的值中包含非法字符串!\n\n 请不要在参数中出现:and,select,update,insert,delete,chr 等非法字符!\n\n我已经设置了不能SQL注入,请不要对我进行非法手段!');window.close();</Script>"
Case "2"
Response.Write "<Script Language=JavaScript>location.href='"&Fy_Zx&"'</Script>"
Case "3"
Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&"的值中包含非法字符串!\n\n 请不要在参数中出现:,and,select,update,insert,delete,chr 等非法字符!\n\n设计了门,非法侵入请离开,谢谢!');location.href='"&Fy_Zx&"';</Script>"
End Select
Response.End
End If
End If
Next
%>

以上代码为较多网友所用,从使用的感言来看,效果显著。

以下为引用的内容:
Dim Query_Badword,Form_Badword,Err_Message,Err_Web,form_name

'------定义部份 头----------------------------------------------------------------------

Err_Message = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向
Err_Web = "Err.Asp" '出错时转向的页面
Query_Badword="'‖and‖select‖update‖chr‖delete‖%20from‖;‖insert‖mid‖master.‖set‖chr(37)‖="
'在这部份定义get非法参数,使用"‖"号间隔
Form_Badword="'‖%‖&‖*‖#‖@‖=‖select‖and‖set‖delete" '在这部份定义post非法参数,使用"‖"号间隔

'------定义部份 尾-----------------------------------------------------------------------
'
On Error Resume Next
'----- 对 get query 值 的过滤.
if request.QueryString<>"" then
Chk_badword=split(Query_Badword,"‖")
FOR EACH Query_form_name IN Request.QueryString
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.QueryString(Query_form_name)),Chk_badword(i))<>0 Then
Select Case Err_Message
Case "1"
Response.Write "<Script Language=JavaScript>alert('传参错误!参数 "&form_name&" 的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');window.close();</Script>"
Case "2"
Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>"
Case "3"
Response.Write "<Script Language=JavaScript>alert('传参错误!参数 "&form_name&"的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');location.href='"&Err_Web&"';</Script>"
End Select
Response.End
End If
NEXT
NEXT
End if

'-----对 post 表 单值的过滤.
if request.form<>"" then
Chk_badword=split(Form_Badword,"‖")
FOR EACH form_name IN Request.Form
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.form(form_name)),Chk_badword(i))<>0 Then
Select Case Err_Message
Case "1"
Response.Write "<Script Language=JavaScript>alert('出错了!表单 "&form_name&" 的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');window.close();</Script>"
Case "2"
Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>"
Case "3"
Response.Write "<Script Language=JavaScript>alert('出错了!参数 "&form_name&"的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');location.href='"&Err_Web&"';</Script>"
End Select
Response.End
End If
NEXT
NEXT
end if

以上是另一种版本。

以下为引用的内容:
<%
DimGetFlagRem(提交方式)
DimErrorSqlRem(非法字符)
DimRequestKeyRem(提交数据)
DimForIRem(循环标记)
ErrorSql="'~;~and~(~)~exec~update~count~*~%~chr~mid~master~truncate~char~declare"Rem(每个敏感字符或者词语请使用半角"~"格开)
ErrorSql=split(ErrorSql,"~")
IfRequest.ServerVariables("REQUEST_METHOD")="GET"Then
GetFlag=True
Else
GetFlag=False
EndIf
IfGetFlagThen
ForEachRequestKeyInRequest.QueryString
ForForI=0ToUbound(ErrorSql)
IfInstr(LCase(Request.QueryString(RequestKey)),ErrorSql(ForI))<>0Then
response.write"<script>alert(""警告:\n请不要做任何尝试"");location.href=""index.asp"";</script>"
Response.End
EndIf
Next
Next
Else
ForEachRequestKeyInRequest.Form
ForForI=0ToUbound(ErrorSql)
IfInstr(LCase(Request.Form(RequestKey)),ErrorSql(ForI))<>0Then
response.write"<script>alert(""警告:\n请不要做任何尝试"");location.href=""index.asp"";</script>"
Response.End
EndIf
Next
Next
EndIf
%>

将上述代码放入conn文件中即可,功能较全面……

若您有相关经历或好的防注方法,欢迎留言交流^_^

另外,亦可参考网络上较为成熟的ASP的cms里所用的防注入程序,不管如何,只想向那些代码入侵的无聊者说:善待他人就是成全自己。(wolf4ever)

举报

  • 相关推荐
  • DeepSeek崩了引热议 官方深夜回应:网页/API已恢复

    8月11日,DeepSeek服务突遭全面宕机,API接口、网页平台以及App均无法访问或响应。 许多网友也通过微博话题#DeepSeek崩了#反馈服务异常。

  • 零代码与 AI 技术破解农业物联网开发痛点的实践路径

    WebIDEPLOY平台通过零代码与AI技术协同应用,解决农业物联网开发痛点。传统开发面临技术门槛高(需掌握MQTT等复杂协议)、定制成本超预算30%、设备数据孤岛(整合成本占40%)等问题。该平台提供三大创新方案:1)自然语言交互开发,非技术人员可3天完成系统搭建;2)200+农业场景模板与AI模型,开发周期从45天缩短至1天;3)支持20+工业协议兼容,数据整合成本降低60%。实践案例显示,某番茄大棚通过该平台实现环境自动调控,产量提升15%;小麦基地灌溉系统节水30%。核心价值在于将开发模式从"技术主导"转为"场景主导",使农业智能化成本降至传统1/10。(数据来源:2024中国农业物联网技术应用白皮书及企业案例)

  • 低代码应用案例:服装行业数字化转型的破局与实践之路

    威海允禔贸易有限公司成立于2008年,专注服装贸易领域,与FILA、安踏等国际品牌建立稳定合作。公司面临四大运营难题:1)业务修改频繁,样品和物料需多次调整;2)物料种类多且跟踪不及时;3)订单易逾期影响季节性销售;4)信息沟通不畅导致分歧。为解决这些问题,公司采用活字格低代码平台定制开发ERP系统,实现订单管理、物料跟踪、智能排产等功能,支持可视化审批流程和实时数据共享。新系统显著提升业务效率,使物料复用率提高30%,订单交付及时率达95%,并通过灵活扩展满足企业持续发展需求。

  • AI日报:扣子空间网页设计功能上线;阿里Wan 2.2即将上线;​OpenAI即将发布 GPT-5

    【AI日报】今日AI领域重要动态:1)Coze推出网页AI设计功能,5分钟生成网页;2)通义千问发布Qwen-MT翻译模型,支持92种语言;3)ChatGPT全面推出Agent功能;4)阿里云Wan2.2视频生成AI即将上线;5)Anthropic推出审计Agent提升AI对齐测试;6)OpenAI计划8月发布GPT-5;7)谷歌发布无代码AI应用开发工具Opal;8)南洋理工与上海AI Lab推出PhysX-3D项目,为3D模型添加物理属性;9)快手开源KAT-V1大模型,40B版本性能接近DeepSeek-R1;10)讯飞星火X1升级版上线,在多语言和语音处理方面显著提升。(140字)

  • 山石网科叶海强解码“双A战略”:ASIC 解放算力、AI 解放人力

    山石网科通过自主研发ASIC安全专用芯片实现战略变革,构建"双A战略"(ASIC+AI)突破行业同质化竞争。其ASIC芯片将高频调用代码固化,释放CPU算力,显著提升系统性能与稳定性,同时通过AI优化研发流程和服务效率,实现人力成本降低。公司规划2023-2025年完成全产品线向ASIC平台切换,2026-2028年进入规模跃升期,目标收入突破20亿元。山石网科强调不盲目追逐AI风口,而是聚焦"流程优化",通过AI提升编码效率30%,运维问题解决效率提升25%。这种"技术筑基、效率突围"的策略,正在帮助公司在行业洗牌中构建差异化竞争优势。

  • 女子为防蚊往鞋里倒敌敌畏:双脚布满水泡走路困难

    最近杭州天气炎热又逢降雨不断,蚊子进入了疯狂繁衍”期,李阿姨被叮咬得苦不堪言。邻居见状,便给她支了个自认为的妙招”往鞋里洒点敌敌畏防蚊。李阿姨没多想就照做了。 谁知第二天,她的双脚就布满了连片的水泡,疼痛难忍,连走路都困难,只能紧急前往萧山区第二人民医院求助。

  • 浙大“卓越中心”发布两项成果突破,为航空航天科学计算注入新动能

    浙江大学与华为合作在航空航天领域取得两项重要突破:夏一帆团队基于昇腾平台开发新型隐式神经网络算法,用于微分方程求解和流场预测,相比传统方法精度提升10%以上;张继发团队基于鲲鹏平台开发高效可变飞行器流动仿真软件,运行速度提升30%-50%。两项成果已应用于航空航天工程实践,为飞行器研发提供关键数据支持,展现了"算力+算法"融合创新的重大价值。

  • 梅卡曼德:赋能新型工业化,为全球工业发展注入新活力

    文章聚焦AI赋能新型工业化发展,指出AI技术正重塑工业生产流程、优化资源配置,推动制造业向智能化、绿色化、服务化转型。梅卡曼德CEO邵天兰在WAIC2025论坛上强调,工业机器人需从"自动执行"升级为"协同决策",具备感知、规划、执行闭环能力。针对小批量个性化生产场景,提出机器人需强化基础能力(如物体识别、操作技能)和快速部署能力。文章还探讨了具身智能技术发展路径,认为需打通"大脑-小脑-肢体"全栈技术,并分享梅卡曼德全球应用案例——其自研"眼脑手"全栈技术已服务50多国客户,参与制定的工业机器人3D视觉国家标准即将实施。最后指出工业AI落地的核心在于技术工程化能力与行业Know-How的深度融合。

  • 1万悬赏引全网狂舞!喜悦男团“扫腿舞”成流量密码

    近日,“扫腿舞”在抖音爆火,引发全网参与挑战。 丁禹兮生日当天发布的扫腿舞视频中,身着黑色西装的他配合专业舞台灯光完成动作,该视频两小时内播放量突破500万,被网友称为“人形特效”。 话题#丁禹锡生日扫腿舞跳上了 更是登上抖音热榜前十,热度超800万。 这并非个例,张雨绮、李晨、黄奕等明星也纷纷发布了各自版本的扫腿舞。

  • 腾讯高管称内部30%代码都由AI在写 700多项业务接入AI

    今日上午,在2025世界人工智能大会Tencent AI Talk智能涌现”论坛上,腾讯副总裁蔡学忠表示,腾讯坚定看好AI的长期价值,目前内部已有700多项业务接入AI技术。 据介绍,在腾讯内部,30%已经是AI在写代码,整体编码效率提升了16%。 蔡学忠分享了打造好用AI的三点思考: 首先是需要坚实的模型基础,不仅是参数和算力的比拼,更是工程化能力和成本效率的较量。 其次强调AI开�