나는 내 RoR에 응용 프로그램에 많은 SELECT SQL 쿼리를했습니다레일에서 SQL을 살균하는 방법은 무엇입니까?
, 일부는 위와 같이 매우 간단이
@replies = Offerreply.find_by_sql ("SELECT * FROM offerreplies WHERE
offer_id="+params [:offer_id])
같은이 RoR에 세계에 새로운 해요 및 일부 조인 매우 복잡하다. 대부분은 SQL 인젝션 문제로 고통 받고 있습니다. 그렇다면 RoR에서 그러한 SQL 문을 어떻게 위생 처리하는가?
편집 : JOINS 및 하위 쿼리가있는 SQL 문을 처리하는 방법은 무엇입니까? 이 같은 것
@to_be_approved=Beneficiary.find_by_sql("SELECT * FROM beneficiaries WHERE project_id="+params[:id]+" AND NOT id IN (SELECT beneficiaries.id FROM beneficiaries INNER JOIN beneficiaryloans ON beneficiaryloans.beneficiary_id=beneficiaries.id AND beneficiaryloans.hfi_id="+session[:id].to_s+" AND beneficiaries.status_id=4) AND cso_id IN(SELECT user_id FROM user_projects INNER JOIN users ON user_projects.user_id=users.id AND users.user_type_id=2)")
왜'find_by_sql'을 사용하고 있습니까? 'find' 나'where'를 사용하면 SQL 인젝션에 대해 걱정할 필요가 없습니다. – Mischa