基于約束的攻擊是怎樣的,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)服務項目包括文登網(wǎng)站建設、文登網(wǎng)站制作、文登網(wǎng)頁制作以及文登網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,文登網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到文登省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
一、基于約束的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、插入兩條正常數(shù)據(jù)
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、查看插入的數(shù)據(jù),發(fā)現(xiàn)只保留了十個字符
5、再插入一條加空格的用戶名,發(fā)現(xiàn)和不加空格插入的admin一樣
二、實例應用
1、訪問http://192.168.0.104/aiyou/php/zc.html,提示輸入用戶名和密碼,輸入點擊提交,提示用戶名已存在
2、試著把用空格填充,密碼為123321
3、查看數(shù)據(jù)庫,成功插入管理員賬號
三、源碼
html頁面:
PHP頁面:
connect_errno){ die("數(shù)據(jù)庫連接失?。?.$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)";//向數(shù)據(jù)庫中添加數(shù)據(jù) #echo $q; #echo "
"; $res=$mysql->query($q);//執(zhí)行sql語句 #echo $res; #echo "
"; $mysql->close(); echo "恭喜".$_POST['user']."注冊成功"; }else{ echo "注冊信息有誤"; } }else{ echo "用戶名已存在"; } }else{ echo "請通過表單提交"; }}?>
看完上述內容,你們掌握基于約束的攻擊是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!