sql注入(sql injection)是指應用程式對使用者輸入資料的合法性沒有判斷、沒有過濾,攻擊者可以在應用程式中通過表單提交特殊的字串,該特殊字串會改變sql的執行結果,從而在管理員毫不知情的情況下實現非法操作,以此來實現欺騙資料庫執行非授權的任意查詢。
create
table
user
( id int
notnull
auto_increment
primary
key,
username varchar(30
)comment
'使用者名稱'
, password varchar(30
)comment
'密碼');
insert
into
user
(username, password)
values
('admin'
,'123456');
insert
into
user
(username, password)
values
('test'
,'123456'
);
驗證賬號密碼是否匹配
select
*from
user
where username=
'abc'
and password=
''or
'1'=
'1';
mysql>
create
table
user(-
> id int
notnull
auto_increment
primary
key,
-> username varchar(30
)comment
'使用者名稱',-
> password varchar(30
)comment
'密碼'
->);
query ok,
0rows affected (
0.07 sec)
mysql>
insert
into
user
(username, password)
values
('admin'
,'123456');
query ok,
1row affected (
0.00 sec)
mysql>
insert
into
user
(username, password)
values
('test'
,'123456');
query ok,
1row affected (
0.00 sec)
mysql>
select
*from
user
where username=
'admin'
and password=
'123456';+
----+----------+----------+
| id | username | password |
+----+----------+----------+|1
| admin |
123456|+
----+----------+----------+
1row
inset
(0.00 sec)
mysql>
select
*from
user
where username=
'admin'
and password=
'123'
;empty set
(0.00 sec)
mysql>
select
*from
user
where username=
'admin'
and password=
''or
'1'=
'1';
+----+----------+----------+
| id | username | password |
+----+----------+----------+|1
| admin |
123456||
2| test |
123456|+
----+----------+----------+
2rows
inset
(0.00 sec)
SQL注入是什麼?
許多 程式在編寫時,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。使用者可以提交一段資料庫查詢 一般是在瀏覽器位址列進行,通過正常的www埠訪問 根據程式返回的結果,獲得某些想得知的資料,這就是所謂的sql injection,即sql注入。的惡夢 sql注入 sql注入通過網頁對 ...
SQL注入是什麼?如何防止?
sql注入是一種注入攻擊,可以執行惡意sql語句。下面本篇文章就來帶大家了解一下sql注入,簡單介紹一下防止sql注入攻擊的方法,希望對大家有所幫助。什麼是sql注入?sql注入 sqli 是一種注入攻擊,可以執行惡意sql語句。它通過將任意sql 插入資料庫查詢,使攻擊者能夠完全控制web應用程式...
24 SQL注入是什麼,如何避免SQL注入?
sql 注入 sql injection 是發生在 web 程式中資料庫層的安全漏洞,是 存在最多也是最簡單的漏洞。主要原因是程式對使用者輸入資料的合法性沒有判斷和處理,導致攻擊者可以在 web 應用程式中事先定義好的 sql 語句中新增額外的 sql 語句,在管理員不知情的情況下實現非法操作,以此...