NoSQL注入

2022-10-11 13:00:11 字數 1214 閱讀 6324

nosql,指的是非關係型的資料庫。nosql有時也稱作not only sql的縮寫,是對不同於傳統的關係型資料庫的資料庫管理系統的統稱。

nosql用於超大規模資料的儲存。(例如谷歌或facebook每天為他們的使用者收集萬億位元的資料)。這些型別的資料儲存不需要固定的模式,無需多餘操作就可以橫向擴充套件。

mongodb屬於nosql資料庫的一種,是由c++語言編寫的乙個基於分布式檔案儲存的開源資料庫系統,旨在為web應用提供可擴充套件的高效能資料儲存解決方案。在高負載的情況下,新增更多的節點,可以保證伺服器效能。

mongodb 將資料儲存為乙個文件,資料結構由鍵值(key=>value)對組成。mongodb 文件類似於 json 物件。字段值可以包含其他文件,陣列及文件陣列。

使用mongodb類中相應的方法

<?php 

$mongo = new mongoclient();

$db = $mongo->myinfo; //選擇資料庫

$coll = $db->test; //選擇集合

$coll->s**e(); //增

$coll->find(); //查

$coll->remove(); //減

$coll->update(); //改

?>

網上主要有兩種分類方式,第一種是按照語言的分類:php陣列注入、j**ascript注入、mongodb shell拼接注入等等;第二種是按照攻擊機制分類:重言式注入、聯合查詢注入、j**ascript注入等等,這種分類方式很像sql注入的分類方式。

又稱為永真式,此類攻擊是在條件語句中注入**,使生成的表示式判定結果永遠為真,從而繞過認證或訪問機制。

聯合查詢是一種眾所周知的 sql 注入技術,攻擊者利用乙個脆弱的引數去改變給定查詢返回的資料集。聯合查詢最常用的用法是繞過認證頁面獲取資料。

mongodb server 支援 j**ascript,這使得在資料引擎進行複雜事務和查詢成為可能,但是傳遞不乾淨的使用者輸入到這些查詢中可以注入任意的 j**ascript **,導致非法的資料獲取或篡改。

當頁面沒有回顯時,那麼我們可以通過 $regex 正規表示式來達到和傳統 sql 注入中 substr() 函式相同的功能,而且 nosql 用到的基本上都是布林盲注。

NoSQL架構實踐(一) 以NoSQL為輔

前面 為什麼要使用nosql 和 關聯式資料庫還是nosql資料庫 兩篇從大體上介紹了為什麼要用nosql,何時該用nosql。經常有朋友遇到困惑,看到nosql的介紹,覺得很好,但是卻不知道如何正式用到自己的專案中。很大的原因就是思維固定在mysql中了,他們問得最多的問題就是用了nosql,我如...

NoSQL架構實踐(一) 以NoSQL為輔

摘要 經常有朋友遇到困惑,看到nosql的介紹,覺得很好,但是卻不知道如何正式用到自己的專案中。很大的原因就是思維固定在mysql中了,他們問得最多的問題就是用了nosql,我如何做關係查詢。那 經常有朋友遇到困惑,看到nosql的介紹,覺得很好,但是卻不知道如何正式用到自己的專案中。很大的原因就是...

NoSQL架構實踐(一) 以NoSQL為輔

怎麼樣把nosql引入到我們的系統架構設計中,需要根據我們系統的業務場景來分析,什麼樣型別的資料適合儲存在nosql資料庫中,什麼樣型別的資料必須使用關聯式資料庫儲存。明確引入的nosql資料庫帶給系統的作用,它能解決什麼問題,以及可能帶來的新的問題。下面我們分析幾種常見的nosql架構。不改變原有...