常见攻击方式
一般说来,在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 {