Web安全相关(五):SQL注入(SQL Injection)

简介

  SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

  根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:

  1. 不当的类型处理;

  2. 不安全的数据库配置;

  3. 不合理的查询集处理;

  4. 不当的错误处理;

  5. 转义字符处理不合适;

  6. 多个提交处理不当。

情景分析

  园子里关于sql注入的文章很多,这里我就不重复写了,找了一篇写得不错的文章,这里直接提供个传送门

  

防止SQL注入

  1. 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。

  2. 永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。(不要拼sql,使用参数化)

  3. 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。(给程序分配合理的数据库操作权限)

  4. 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。(敏感信息加密)

  5. 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。

时间: 2024-12-25 08:50:13

Web安全相关(五):SQL注入(SQL Injection)的相关文章

php中防止SQL注入的方法

[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨.我们先使用任何编辑工具打开 /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文件

PHP防止SQL注入的方法

[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我 们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨.我们先使用任何编辑工具打开 /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文

PHP代码审计SQL注入篇

什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞.可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限. 而造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码. SQL注入实例 很多W

在php中防止SQL注入的方法

摘要:我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击...转载请注明来源:在php中防止SQL注入的方法 [一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/

谈谈PHP网站的防SQL注入

SQL(Structured Query Language)即结构化查询语言.SQL 注入,就是把 SQL 命令插入到 Web 表单的输入域或页面请求参数的查询字符串中,在 Web表单向 Web 服务器提交 GET 或 POST 请求时,如果服务器端未严格验证参数的有效性和合法性,将导致数据库服务器执行恶意的 SQL 命令. SQL 注入攻击的过程: (1)判断 Web 应用是否可以进行 SQL 注入. (2)寻找 SQL 注入点. (3)猜解用户名和密码. (4)寻找 Web 系统管理后台入口

转:PHP中防止SQL注入的方法

[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨.我们先使用任何编辑工具打开 /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文件

php防sql注入

[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我 们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨.我们先使用任何编辑工具打开 /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文

linux之mysql数据库搭建及sql注入和防御

mysql中文手册下载地址:http://down.51cto.com/data/2244392 sql注入各种姿势:http://wt7315.blog.51cto.com/10319657/1828167 sqlmap注入神器详解:http://wt7315.blog.51cto.com/10319657/1841241 数据库分为三种基本形式 : (其实这些都是众所周知的,只是为了知识的完整性,简单的带过) 关系型数据库 层次型数据库 网状型数据库 运行在Linux系统上的关系型数据库管理

一个简单的后台与数据库交互的登录与注册[sql注入处理,以及MD5加密]

一.工具: vs2013[因为我现在用的也是2013,版本随便你自己开心] sql2008[准备过久升级] 二.用到的语言: HTML+CSS+Jquery+Ajax+sqlserver HTML[相当于一个人] css[要穿衣服] Jquery[人要做一些动作,Jquery是对js一些常用方法的封装] Ajax[建立前端页面与数据库的交互] sqlserver[数据库] 三.过程 html部分代码: 1 <body> 2 <div id="header"> 3