该修复任务专用于处理以下安全性问题:
[1] SQL 盲注
[2] SQL 注入
[3] XPath 注入
[4] 发现数据库错误模式
[5] 跨站点脚本编制
[6] 使用 SQL 注入的认证旁路
[7] HTTP 响应分割
[8] 链接注入(便于跨站请求伪造)
详细信息
若干问题的补救方法在于对用户输入进行清理。通过验证用户输入未包含危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务,例如:启动任意 SQL 查询、嵌入将在客户端执行的 Javascript 代码、运行各种操作系统命令,等等。建议过滤出所有以下字符:

[1] |(竖线符号)
[2] & (& 符号)
[3];(分号)
[4] $(美元符号)
[5] %(百分比符号)
[6] @(at 符号)
[7] '(单引号)
[8] "(引号)
[9] \'(反斜杠转义单引号)
[10] \"(反斜杠转义引号)
[11] <>(尖括号)
[12] ()(括号)
[13] +(加号)
[14] CR(回车符,ASCII 0x0d)
[15] LF(换行,ASCII 0x0a)
[16] ,(逗号)
[17] \(反斜杠)

以下部分描述各种问题、问题的修订建议以及可能触发这些问题的危险字符:SQL 注入和 SQL 盲注:A. 确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。当使用存储过程时,请利用 ADO 命令对象来实施它们,以强化变量类型。C. 清理输入以排除上下文更改符号,例如:

[1] '(单引号)
[2] "(引号)
[3] \'(反斜线转义单引号)
[4] \"(反斜杠转义引号)
[5] )(结束括号)
[6] ;(分号)

跨站点脚本编制:A. 清理用户输入,并过滤出 JavaScript 代码。我们建议您过滤下列字符:

[1] <>(尖括号)
[2] "(引号)
[3] '(单引号)
[4] %(百分比符号)
[5] ;(分号)
[6] ()(括号)
[7] &(& 符号)
[8] +(加号)

B. 如果要修订 <%00script> 变体,请参阅 MS 文章 821349C. 对于 UTF-7 ***: [-] 可能的话,建议您施行特定字符集编码(使用 'Content-Type' 头或 <meta> 标记)。HTTP 响应分割:清理用户输入(至少是稍后嵌入在 HTTP 响应中的输入)。请确保输入未包含恶意的字符,例如:

[1] CR(回车符,ASCII 0x0d)
[2] LF(换行,ASCII 0x0a)远程命令执行:清理输入以排除对执行操作系统命令有意义的符号,例如:
[1] |(竖线符号)
[2] & (& 符号)
[3];(分号)

执行 shell 命令:A. 绝不将未检查的用户输入传递给 eval()、open()、sysopen()、system() 之类的 Perl 命令。B. 确保输入未包含恶意的字符,例如:

[1] $(美元符号)
[2] %(百分比符号)
[3] @(at 符号)

XPath 注入:清理输入以排除上下文更改符号,例如:

[1] '(单引号)
[2] "(引号) 等

LDAP 注入:A. 使用正面验证。字母数字过滤(A..Z,a..z,0..9)适合大部分 LDAP 查询。B. 应该过滤出或进行转义的特殊 LDAP 字符:

[1] 在字符串开头的空格或“#”字符
[2] 在字符串结尾的空格字符
[3] ,(逗号)
[4] +(加号)
[5] "(引号)
[6] \(反斜杠)
[7] <>(尖括号)
[8] ;(分号)
[9] ()(括号)

MX 注入:应该过滤出特殊 MX 字符:

[1] CR(回车符,ASCII 0x0d)
[2] LF(换行,ASCII 0x0a)记录伪造:

应该过滤出特殊记录字符:

[1] CR(回车符,ASCII 0x0d)
[2] LF(换行,ASCII 0x0a)
[3] BS(退格,ASCII 0x08)

ORM 注入:A. 确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。C. 使用参数化查询 APID. 清理输入以排除上下文更改符号,例如: (*):

[1] '(单引号)
[2] "(引号)
[3] \'(反斜线转义单引号)
[4] \"(反斜杠转义引号)
[5] )(结束括号)
[6] ;(分号)
(*) 这适用于 SQL。高级查询语言可能需要不同的清理机制。

转载于:https://blog.51cto.com/zhengj3/290724

WEB安全,SQL注入漏洞的加固代码汇总相关推荐

  1. web测试-sql注入漏洞

    1.web程序三层结构 2.什么是sql注入 SQL注入 是将Web页面的原URL.表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令. 注入攻击 ...

  2. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  3. 【转】基于SQL的Web系统安全防范——SQL注入漏洞

    攻击研究及防范措施 SQL-Based Web System Security--Structured Query Language InjectionLeak Attack Study And De ...

  4. web漏洞-SQL注入漏洞、目录遍历漏洞、文件下载漏洞

    这里用到的是Pikachu漏洞练习平台 一.SQL注入漏洞-数字型注入 SQL注入漏洞简介 在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库 ...

  5. 从小白到web渗透工程师——零基础指南(2)sql注入漏洞

    hello,各位小伙伴,在看过上一篇文章之后,想必大家伙对于web渗透工程师有了一定的了解,那么,作为一名渗透工程师,挖洞,就是我们的日常工作中必不可少的一部分了.在安全圈中,如果你挖的洞危险系数够高 ...

  6. Web安全之Sql注入漏洞

    Sql注入漏洞 SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的"数据"拼接到SQL语句中后,被当作SQL语句的一部分执行. ...

  7. 【web安全】SQL注入漏洞1--寻找SQL注入

    引言 我们在做web应用的时候,经常会根据前台的请求,到后台查询数据.由于前台用户输入的请求是不可信任的, 我们在代码里,如果直接将前台传过来的数据拼接到sql语句中,那么用户就可以构造非法的SQL语 ...

  8. 【愚公系列】2023年05月 网络安全高级班 065.WEB渗透与安全(SQL注入漏洞-手工注入)

    文章目录 前言 一.SQL注入漏洞-手工注入 1.错误注入 2.布尔注入 2.1 通过`'or 1=1 --` 注入 2.2 通过`admin'or 1=1 --` 注入 3.联合注入 3.1 查看u ...

  9. web基础漏洞之SQL注入漏洞

    先看菜鸟教程中HTTP的知识,HTTP是为了保证客户端与服务器之间的通信.HTTP的请求方法有两种:GET和POST.GET是从服务器上获得数据,POST是向服务器传递数据. Web 程序三层架构: ...

最新文章

  1. java拖动组件,[小娱乐] 一个能拖动组件、改变组件大小的容器
  2. 滴滴开源在2019:十大重点项目盘点,DoKit客户端研发助手首破1万Star
  3. alientek 3.5寸tftlcd模块资料_电冰箱触摸屏提高设备档次,深圳3.5寸人机界面厂家...
  4. JEECG Framework 3.4.1 beta 版本发布
  5. 使用 PDB 避免 Kubernetes 集群中断
  6. 03-03 java 顺序语句结构,选择结构if语句
  7. Web终端SSH功能
  8. C语言内联函数的作用
  9. mysql replace函数对字段进行字符替换
  10. python的drop duplicates,Python的pandas中,drop_duplicates函数怎么根据索引来去重
  11. 002649:bootdo项目改造计划
  12. 告别巴蒂和你的年少时代--当Batigol成为永恒
  13. Dubbo太难了,我决定加入Spring Cloud阵营了...
  14. batch size设置技巧
  15. mysql经典sql语句大全_经典SQL语句大全(sql查询语句大全集锦)
  16. pixhawk4连接PX4 Flow光流传感器调试过程记录
  17. VarianceDeviation Tradeoff(方差、偏差权衡)
  18. amazeui学习笔记--css(常用组件6)--图标Icon
  19. STM32入门篇2之外部中断
  20. mysql删去root用户无法登录_MySQL误删root用户导致无法登陆解决方法

热门文章

  1. linux 内存管理slab源码,Linux内核源代码情景分析-内存管理之slab-回收
  2. ios启动页尺寸_关于移动端App启动页的策划方案
  3. antd自定义分页器_自定义分页器
  4. python实现ssh登录send_Python实现ssh批量登录并执行命令
  5. mongoose手动生成ObjectId
  6. 聊聊spring cloud gateway的PreserveHostHeaderGatewayFilter
  7. Ubuntu + VirtualBox + windows xp互相访问
  8. Silverlight 预定义颜色速查表
  9. UIButton防止按钮和手势的暴力点击
  10. iOS UITableViewCell重用问题