WEB安全之SQL注入

SQL注入漏洞



SQL注入攻击是由于SQL语句的调用方案不完善而产生的安全隐患。一旦应用在存在SQL注入漏洞,就可能产生一下影响:

- 数据库的内容被外界窃取

- 数据库内容被篡改

- 登陆认证被绕过

- 其他,例如服务器上的文件被读取或修改、服务器上的程序被执

产生SQL注入漏洞的根本原因是:被指定为参数的字符串部分被排除出字面量,导致SQL语句发生变化。



防范对策

使用占位符拼接SQL语句。

占位符依据实现方法分为静态占位符和动态占位符。理论上,静态占位符能够完全小吃SQL注入漏洞的可能性,尽量采用静态占位符。



Java+MySQL的安全连接方式

java连接数据库MySQL时使用JDBC驱动的MySQLConnector/J。这一组合默认使用的是动态占位符,因此修改如下代码给位使用静态占位符。

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/dbname?user=xxx&password=xxx&userServerPrepStmts=true&useUnicode=true&characterEncoding=utf-8")
时间: 2024-10-31 04:58:04

WEB安全之SQL注入的相关文章

Web安全之SQL注入攻击技巧与防范

在Web1.0时代,人们更多是关注服务器端动态脚本语言的安全问题,比如将一个可执行脚本(俗称Webshell)通过脚本语言的漏洞上传到服务器上,从而获得服务器权限.在Web发展初期,随着动态脚本语言的发展和普及,以及早期工程师对安全问题认知不足导致很多”安全血案”的发生,至今仍然遗留下许多历史问题,比如PHP语言至今仍然无法从语言本身杜绝「文件包含漏洞」(参见这里),只能依靠工程师良好的代码规范和安全意识. 伴随着Web2.0.社交网络.微博等一系列新型互联网产品的兴起,基于Web环境的互联网应

WEB 安全之 SQL注入 < 三 > 提权

前两篇文章介绍了攻击者通过构造SQL语句来获得“非授权信息”,都是停留在数据库层面的,其实它的威力可不仅仅止于此吆.如果DB管理员有疏忽,再加上页面有注入漏洞,危害不仅仅像前两篇最终网站后台沦陷搞不好整个系统都有可能被人控制. 测试环境跟上一篇相同, MSQL + asp.net  + win7.前面已经拿下了管理员用户名.密码,我们还是使用新闻详细页面 ( 方便测试,不设防 ): public partial class NewsInfo : System.Web.UI.Page { prot

【渗透攻防Web篇】SQL注入攻击高级

前言 前面我们学习了如何寻找,确认,利用SQL注入漏洞的技术,本篇文章我将介绍一些更高级的技术,避开过滤,绕开防御.有攻必有防,当然还要来探讨一下SQL注入防御技巧. 目录 第五节 避开过滤方法总结 5.1.大小写变种 5.2.URL编码 5.3.SQL注释 5.4.空字节 5.5.二阶SQL注入 第六节 探讨SQL注入防御技巧 6.1.输入验证 6.2.编码输出 正文 第五节 避开过滤方法总结 Web应用为了防御包括SQL注入在内的攻击,常常使用输入过滤器,这些过滤器可以在应用的代码中,也可以

WEB安全:SQL注入

SQL注入是网站和web应用程序中最常见的安全漏洞.这种恶意技术有很多应用场景, 但(SQL注入)通常是指在数据输入的地方注入代码以利用数据库应用程序中的安全漏洞. SQL注入在接收用户输入的接口处 (也就是说在注册表单.查询表单等地方)尝试执行注入操作.对(SQL注入)高度关注以及方便检测数据库应用程序中的安全漏洞使得攻击者经常地以最小的努力"测试"网站/应用程序的安全完整性. 危害 成功执行的SQL注入有可能严重危害数据库中存储的数据.这种攻击的意图可能包括(但不限于)任何以下方式

mysql基础语法及拓展到web中的sql注入

本来是想写下javaweb的mvc(tomcat, spring, mysql)的搭建,  昨天搭到凌晨3点, 谁知道jdbcTemplate的jar包不好使, 想死的心都有了, 想想还是休息一下, 所以复习一下mysql的基本语法,因为以前对web的安全比较熟悉, 看过好多黑客防线以及黑客X档案, 黑锅几家网吧,你懂的, o(^▽^)o, 所以拓展一下web安全, 常见web注入的方式, 以及找的两篇资料: 首先复习一下基本的增删改查: //从Users表中删除User为admin的字段; d

WEB 安全之 SQL注入一

SQL注入是一个比较“古老”的话题,虽然现在存在这种漏洞的站点比较少了,我们还是有必要了解一下它的危害,及其常用的手段,知己知彼方能百战不殆.进攻与防守相当于矛和盾的关系,我们如果能清楚了解 攻击的全过程,就可以更好的预防类似情况的出现. SQL注入原理   主要是攻击者,利益被攻击页面的一些漏洞(通常都是程序员粗心大意造成的),改变数据库执行的SQL语句,从而达到获取“非授权信息”的目的. 下面自己搭建了实验环境用于测试.  首先交待一下,测试环境 开发语言为 Asp.net  ,数据库使用的

Web安全 之 SQL注入

随着B/S模式应用开发的发展,使用这种模式编写的应用程序也越来越多.相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患.用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入.       SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对 SQL注入 发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不

[超级基础]Web安全之SQL注入由浅入深(?)

前言 断断续续看Web安全到现在了,感觉对很多基础知识还是一知半解,停留在模糊的层次.所以准备系统总结一下. Sql注入我以前一直不以为然,一是现在能sql的站确实很少,二是有像sqlmap的工具可以用.而且想要修复也很简单. 但后来发现不管是CTF题目中,还是实站中还有有很多需要用到sql注入的地方.17版的OWASPtop10中,注入依旧是A1级别的漏洞. 所以在此学习并回顾一下此类漏洞. 1 环境准备 1.1什么是Sql注入 下面是17OWASP中对注入类漏洞的定义: 简单的说,SQL注入

WEB 安全之 SQL注入<一> 盲注

SQL注入原理   主要是攻击者,利用被攻击页面的一些漏洞(通常都是程序员粗心大意造成的),改变数据库执行的SQL语句,从而达到获取“非授权信息”的目的. 下面自己搭建了实验环境用于测试.  首先交待一下,测试环境 开发语言为 Asp.net  ,数据库使用的 MSQL ,测试页面模拟了普通的新闻页面,URL里接受参数 ?id=1  获取文章ID, 后台直接通获取的ID拼接查询语句,没有做敏感字符的过滤,从而为入侵者留下了有机可剩的漏洞.下面是后台代码: public partial class

常见web安全问题,SQL注入、XSS、CSRF,基本原理以及如何防御

1.SQL注入原理:1).SQL命令可查询.插入.更新.删除等,命令的串接.而以分号字元为不同命 令的区别.(原本的作用是用于SubQuery或作为查询.插入.更新.删除--等 的条件式)2).SQL命令对于传入的字符串参数是用单引号字元所包起来.(但连续2个单引 号字元,在SQL资料库中,则视为字串中的一个单引号字元)3).SQL命令中,可以注入注解预防:1).在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据 访问功能.2).在组合SQL字符串时,先针对