Ich bin neu in dieser RoR Welt,Wie man das SQL in Rails Sanitize?
ich wie oben viele SELECT SQL-Abfragen in meiner RoR Anwendung, so etwas wie diese
@replies = Offerreply.find_by_sql ("SELECT * FROM offerreplies WHERE
offer_id="+params [:offer_id])
Einige sind sehr einfach haben und einige sind sehr komplex Joins. die meisten von ihnen leiden unter SQL Injection Problem. So., wie solche SQL-Anweisungen in RoR zu sanieren?
Edit: Wie behandelt man in SQL-Anweisungen, die JOINS und Sub-Abfragen hat? so etwas wie dieses
@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)")
Warum verwenden Sie 'find_by_sql'? Wenn Sie 'find' oder' where' verwenden, müssen Sie sich keine Gedanken über SQL-Injection machen. – Mischa