sql防注入

本文介绍了SQL注入攻击的常见方式,通过实例演示了如何利用SQL注入获取敏感信息甚至破坏数据库。并强调了防范措施,包括关闭错误显示、变量检测过滤、使用预编译语句和加强密码加密等。
摘要由CSDN通过智能技术生成

常见攻击方式

一般说来,在Web安全领域,常见的攻击方式大概有以下几种:
1、SQL注入攻击
2、跨站脚本攻击 - XSS
3、跨站伪造请求攻击 - CSRF
4、文件上传漏洞攻击
5、分布式拒绝服务攻击 - DDOS



限于篇幅,本篇只讨论SQL注入攻击的技巧与防范。

SQL注入常见攻击技巧

SQL注入攻击是Web安全史上的一个重要里程碑,它从1999年首次进入人们的视线,至今已经有十几年的历史了,虽然我们现在已经有了很全面的防范对策,但是它的威力仍然不容小觑,SQL注入攻击至今仍然是Web安全领域中的一个重要组成部分。

以PHP+MySQL为例,让我们以一个Web网站中最基本的用户系统来做实例演示,看看SQL注入究竟是怎么发生的。


1、创建一个名为demo的数据库:

CREATE DATABASE  `demo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

2、创建一个名为user的数据表,并插入1条演示数据:

CREATE TABLE  `demo`.`user` (
`uid` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT  '用户uid',
`username` VARCHAR( 20 ) NOT NULL COMMENT  '用户名',
`password` VARCHAR( 32 ) NOT NULL COMMENT  '用户密码'
) ENGINE = INNODB;
INSERT INTO `demo`.`user` (`uid`, `username`, `password`) VALUES ('1', 'plhwin', MD5('123456'));

实例一

通过传入username参数,在页面打印出这个会员的详细信息,编写 userinfo.php 程序代码:

<?php
header('Content-type:text/html; charset=UTF-8');
$username = isset($_GET['username']) ? $_GET['username'] : '';
$userinfo = array();
if($username){
     
	//使用mysqli驱动连接demo数据库
	$mysqli = new mysqli("localhost", "root", "root", 'demo');
	$sql = "SELECT uid,username FROM user WHERE username='{
     $username}'";
	//mysqli multi_query 支持执行多条MySQL语句
	$query = $mysqli->multi_query($sql);
	if($query){
     
		do {
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值