簡體   English   中英

Gnome的libgda和SQL注入

[英]Gnome's libgda and SQL injections

我正在使用Gnome數據訪問(libgda)訪問C程序中的數據庫。 我使用GdaSqlBuilder構建查詢。 這是一個示例代碼,用於在請求的字段上添加相等條件:

GdaSqlBuilderId add_equal_condition(char* m_name, GValue* m_value)
{
    GdaSqlBuilderId name, value, condition;
    name = gda_sql_builder_add_id(builder, m_name);
    value = gda_sql_builder_add_expr_value(builder, NULL, m_value);
    condition = gda_sql_builder_add_cond(builder, GDA_SQL_OPERATOR_TYPE_EQUAL, name, value, 0);
    return condition;
}

libgda是否可以保護自己免受SQL注入的侵害,還是需要在輸入傳遞給GDA之前自行清理輸入?

預先感謝您的回答。

在前言中對此進行了解釋:

創建包含值(文字)的SQL字符串時,可以嘗試創建一個包含值本身的字符串,執行該語句,並在下次需要使用相同的語句時應用相同的過程(因為這是最簡單的解決方案)。用不同的值執行。 這種方法具有以下兩個主要缺陷,這就是為什么Libgda建議在語句中使用變量(也稱為參數或占位符)並在僅變量值發生更改時重用同一GdaStatement對象的原因。

https://developer.gnome.org/libgda/unstable/ch06s03.html

即使當前版本不容易受到攻擊,也不意味着每個將來的版本都不會受到攻擊。 您應該始終無一例外地照顧用戶提供的東西。

來自其他任何類型的系統的接口也是如此。 這不僅限於SQLi,也不是SQLi或您使用的庫的問題。 您有責任使用戶只能輸入您希望其輸入的種類數據,否則將拒絕該數據。 您不能依靠其他代碼為您執行此操作。

通常:沒有什么可以完全保護自己免受某種類型的攻擊。 它將始終限於撰寫本文時已知的攻擊向量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM