Security

模糊描述符錢包 RPC

  • August 4, 2021

使用 JSON-RPC 和 Descriptor 錢包 RPC 時是否有可能進行 SQL 注入?

考慮一些描述符錢包 RPC 中的一個參數是易受攻擊的,並返回一些不應返回的帶有 SQL 查詢的數據。如果 RPC 只能從 localhost 訪問,它真的會影響任何事情嗎?

因為我還沒有嘗試過-rest選項,所以使用 REST API 時的安全性有什麼不同嗎?

絕大多數數據庫條目是由錢包生成的,不包含使用者可以輸入的任何內容。使用者可以輸入的內容通常在寫入數據庫之前進行驗證,例如,導入的importdescriptors描述符在寫入之前必須是有效的描述符。

唯一的例外是根據定義包含使用者生成數據的標籤。因此,如果記錄寫入執行不正確,使用者可能會使用它setlabel來執行 SQL 注入攻擊。這是因為提供給的標籤字元串setlabel必須直接提供給實際將其添加到數據庫的 SQL 查詢。

然而,Bitcoin Core 使用 sqlite 可以防止 SQL 注入攻擊。比特幣核心使用準備好的語句,因此不可能執行 SQL 注入,除非在 sqlite 方面出現一些實現錯誤。這些語句是在載入錢包時準備的。它們是固定查詢,使用者不能修改。

引用自:https://bitcoin.stackexchange.com/questions/107926