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

问题描述

如何通过以下方法删除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

我尝试了多种方法,但没有一个起作用。

有人可以帮我吗?

解决方法

您忘记在procedure TMainForm.IdTCPSyncServerConnect(AContext: TIdContext); var AClientIP: string; begin AClientIP := AContext.Binding.PeerIP; TThread.Synchronize(nil,procedure var lItem : TListItem; begin Inc(FClientCount); lblClientConnections.Caption := IntToStr(FClientCount); lItem := lstClients.Items.Add; lItem.Caption := AClientIP; lItem.SubItems.Add(AClientIP); lItem.SubItems.Add(DateTimeToStr(Now)); end ); end; 之后添加逗号,,并且您没有传递正确的where条件,假设?BOTranslationValue是正确的表名,请尝试下面的查询:

BOTranslationToken

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...