[英]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 條件,假設BOTranslationValue
和BOTranslationToken
是正確的表名,請嘗試以下查詢:
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.