W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
如果您通過(guò)(或 ) 參數(shù),請(qǐng)確保它們首先被強(qiáng)制轉(zhuǎn)換為字符串。 用戶可以在 GET 和 POST 請(qǐng)求中插入關(guān)聯(lián)數(shù)組,這可以 然后成為不需要的 $ 查詢。$_GET$_POST
一個(gè)相當(dāng)無(wú)害的例子:假設(shè)您正在查找用戶的信息 請(qǐng)求 http://www.example.com?username=bob。 您的應(yīng)用程序?qū)?chuàng)建查詢。$q = new \MongoDB\Driver\Query( [ 'username' => $_GET['username'] ])
有人可以通過(guò)獲取 http://www.example.com?username[$ne]=foo(其中 PHP)來(lái)顛覆這一點(diǎn) 會(huì)神奇地變成一個(gè)關(guān)聯(lián)數(shù)組,把你的查詢變成 , 這將返回所有未命名為“foo”的用戶(可能是您的所有用戶)。$q = new \MongoDB\Driver\Query( [ 'username' => [ '$ne' => 'foo' ] ] )
這是一個(gè)相當(dāng)容易防御的攻擊:確保 _GET 美元和 _POST 美元 參數(shù)是將參數(shù)發(fā)送到數(shù)據(jù)庫(kù)之前所需的類型。 PHP 有 filter_var() 函數(shù)來(lái)協(xié)助解決這個(gè)問(wèn)題。
請(qǐng)注意,這種類型的攻擊可以與任何數(shù)據(jù)庫(kù)交互一起使用 查找文檔,包括更新、更新插入、刪除和 findAndModify 命令。
有關(guān)MongoDB的類似SQL注入的問(wèn)題的更多信息,請(qǐng)參閱主要文檔。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: