基于約束的sql攻擊是怎樣的
基于約束的攻擊是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
創新互聯服務項目包括文登網站建設、文登網站制作、文登網頁制作以及文登網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,文登網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到文登省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
一、基于約束的sql攻擊原理
1、新建表格名字為user,該表的約束的是名字和密碼長度不能超過10
create table user(id int primary key auto_increment,//id字段,int類型,關鍵字,自動增加name varchar(10) not null,//name字段,字符串,不允許為空pass varchar(10) not null)//year字段,int類型,不允許為空
2、插入兩條正常數據
insert into user (name,pass) values ("aiyou",123456);insert into user (name,pass) values ("admin",123456);
3、插入長度大于10的用戶名
insert into user (name,pass) values ("admin123456789",123456);
4、查看插入的數據,發現只保留了十個字符
5、再插入一條加空格的用戶名,發現和不加空格插入的admin一樣
二、實例應用
1、訪問http://192.168.0.104/aiyou/php/zc.html,提示輸入用戶名和密碼,輸入點擊提交,提示用戶名已存在
2、試著把用空格填充,密碼為123321
3、查看數據庫,成功插入管理員賬號
三、源碼
html頁面:
PHP頁面:
connect_errno){ die("數據庫連接失?。?.$mysql->connect_errno);}else{ if(isset($_POST['submit'])){ $name=$_POST['user']; $sql="select * from user where name='$name'"; $res=$mysql->query($sql); $num=$res->num_rows; #echo $num; if($num==0) { $password=$_POST['pass1'];//獲取表單里的密碼 if(isset($_POST['user']) && isset($_POST['pass1']) && isset($_POST['pass2'])) { #echo $password; #echo "
"; $q="insert into user(name,pass) values ('$name',$password)";//向數據庫中添加數據 #echo $q; #echo "
"; $res=$mysql->query($q);//執行sql語句 #echo $res; #echo "
"; $mysql->close(); echo "恭喜".$_POST['user']."注冊成功"; }else{ echo "注冊信息有誤"; } }else{ echo "用戶名已存在"; } }else{ echo "請通過表單提交"; }}?>
看完上述內容,你們掌握基于約束的攻擊是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!
本文名稱:基于約束的sql攻擊是怎樣的
轉載來源:http://www.xueling.net.cn/article/gcjooc.html