生活随笔
收集整理的這篇文章主要介紹了
Json注入
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Json簡介
JSON 是存儲和交換文本信息的語法,是輕量級的文本數據交換格式。類似xml,但JSON 比 XML 更小、更快,更易解析。所以現在接口數據傳輸都采用json方式進行。JSON 文本的 MIME 類型是 "application/json"。
json語法
- 數據在名稱/值對中
- 數據由逗號分隔
- 大括號保存對象
- 中括號保存數組
JSON 值
JSON 值可以是:
- 數字(整數或浮點數)??{"age":30 }
- 字符串(在雙引號中)? {"uname":"yang"}
- 邏輯值(true 或 false)?{"flag":true }
- 數組(在中括號中){"sites":[{"name":"yang"},{"name":"ming"}]}
- 對象(在大括號中)JSON 對象在大括號({})中書寫:
- null? ??{ "runoob":null }
Json-demo:
{ "users": { "user": [{ "id": "1", "username": "admin", "passwd": "admin888"},{ "id": "2", "username": "root", "passwd": "root123"},{ "id": "3", "username": "system", "passwd": "system456"}]}} 二、JSON注入
和xml注入一樣,只是數據表現形式不同而已。
<?phpheader('content-type:text/html;charset=utf-8'); if(isset($_POST['json'])){$json_str=$_POST['json'];$json=json_decode($json_str); if(!$json){ die('JSON文檔格式有誤,請檢查');}$username=$json->username; $mysqli=new mysqli();$mysqli->connect('localhost','root','root'); if($mysqli->connect_errno){ die('數據庫連接失敗:'.$mysqli->connect_error);}$mysqli->select_db('user'); if($mysqli->errno){dir('打開數據庫失敗:'.$mysqli->error);}$mysqli->set_charset('utf-8');$sql="SELECT username,paawd FROM users WHERE username='{$username}'";$result=$mysqli->query($sql); if(!$result){ die('執行SQL語句失敗:'.$mysqli->error);}else if($result->num_rows==0){ die('查詢結果為空');}else {$array1=$result->fetch_all(MYSQLI_ASSOC); echo "用戶名:{$array1[0]['username']},密碼:{$array1[0]['paawd']}";}$result->free();$mysqli->close();}?> 和SQL注入一樣,插入注入語句。但要注意一點是對影響json語句的要進行轉義,如雙引號、花括號等。
?
總結
以上是生活随笔為你收集整理的Json注入的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。