簡體   English   中英

如何使用 Ransack 在 Rails 中避免 SQL 注入

[英]How to avoid SQL Injection in Rails with Ransack

下面的方法如何去除SQL盲注呢?

def self.with_translation_value_of_language_id_eq(language_id)
    joins('LEFT JOIN BOTranslationValue on BOTranslationToken.id = BOTranslationValue.boTranslationTokenID '\
          "AND BOTranslationValue.languageID = #{language_id}")
      .select('BOTranslationToken.*, BOTranslationValue.value as current_language_value')
  end

我試過sanitize_sql_array但它不起作用。

還有以下方式

def self.with_translation_value_of_language_id_eq(language_id)
    joins('LEFT JOIN BOTranslationValue on BOTranslationToken.id = BOTranslationValue.boTranslationTokenID '\
          "AND BOTranslationValue.languageID = ?" language_id )
      .select('BOTranslationToken.*, BOTranslationValue.value as current_language_value')
  end

我嘗試了多種方法,但都沒有奏效。

誰能幫我這個?

你忘了加逗號,后面? ,並且您沒有傳遞正確的 where 條件,假設BOTranslationValueBOTranslationToken是正確的表名,請嘗試以下查詢:

def self.with_translation_value_of_language_id_eq(language_id)
  joins('BOTranslationValue on BOTranslationToken.id = BOTranslationValue.boTranslationTokenID ')
 .where("BOTranslationValue.languageID = ?", language_id)
 .select('BOTranslationToken.*, BOTranslationValue.value as current_language_value')
end

暫無
暫無

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

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