를 사용하여, Brakeman 1.8.3이 모델에서 다음 코드에 대한 높은 신뢰 SQL 주입 경고 제기레일 동수 SQL 주입 경고 내 레일 3.2 응용 프로그램을 Arel 구문
micropost.rb을
def self.from_users_followed_by(user)
followed_user_ids = Relationship.select(:followed_id).
where("follower_id = :user_id").
to_sql
where("user_id IN (#{followed_user_ids}) OR user_id = :user_id",
user_id: user.id)
end
내가 Arel 구문을 사용하지 않는 코드를 변경할 때
은 그러나 경고가 발생하지 않습니다 :
def self.from_users_followed_by(user)
followed_user_ids = "SELECT followed_id FROM relationships
WHERE follower_id = :user_id"
where("user_id IN (#{followed_user_ids}) OR user_id = :user_id",
user_id: user.id)
end
이 거짓 포지인가 tive 또는 Arel 구문이나 또는 to_sql
메소드와 관련이있는 경우 ...? 두 가지 예에서 실행되는 실제 코드와 경고를 보증하는 코드의 차이점을 이해할 수 없습니다.
내가 대답 할 수있는 최선의 답변! 매우 감사합니다! –
도와 드리겠습니다. 수정은 [여기] (https://github.com/presidentbeef/brakeman/pull/194)입니다. – Justin