0
나는 다음과 같은 링크가 있습니다레일 3 : 사용자가 URL을 입력하여 데이터베이스를 변경하지 못하게하는 방법은 무엇입니까?
link_to("Toggle", "/jobs/#{job.id}/toggle_is_money_paid", :remote => true)
Ajax 요청 사용하여 작업의 is_money_paid
필드 전환 :
http://localhost:3001/jobs/200/toggle_is_money_paid
에서 :
def toggle_is_money_paid
job = Job.find(params[:id])
job.update_attributes(:is_money_paid => !job.is_money_paid)
render :nothing => true
end
# config/routes.rb
match "/jobs/:id/toggle_is_money_paid" => "jobs#toggle_is_money_paid"
그러나 직접 사용자 유형의 경우 브라우저에서는 작업 # 200의 is_money_paid
필드를 토글합니다.
사용자가 링크를 눌러서 만 토글을 전환 할 수 있도록 어떻게 방지 할 수 있습니까?
무엇입니까? 이것은 해결책이 아닙니다. 그것이하는 유일한 일은 요청을하기가 더 어렵게 만드는 것이지만 여전히 가능합니다. – ryeguy
@ryeguy CSRF를 방지하므로 사용자 만 필드를 전환 할 수 있습니다. – Samuel
@ryeguy : 사람들은 주소 표시 줄에 URL을 입력하여 작동시킬 수 없습니다. 메소드는 PUT이어야하지만 URL은 GET입니다. –