"질량 할당"이라는 용어가 Rails에만 해당되는지는 모르겠지만 같은 방법으로 모든 변수에 값을 할당 할 때 대량 할당이된다는 기본적인 아이디어를 얻었습니다.레일스의 질량 할당은 무엇이며 특별한 이름이 필요합니까?
정확한 정의입니까? 왜 여기에 특별한 이름이 있습니까?
"질량 할당"이라는 용어가 Rails에만 해당되는지는 모르겠지만 같은 방법으로 모든 변수에 값을 할당 할 때 대량 할당이된다는 기본적인 아이디어를 얻었습니다.레일스의 질량 할당은 무엇이며 특별한 이름이 필요합니까?
정확한 정의입니까? 왜 여기에 특별한 이름이 있습니까?
레일에 매스를 지정하면 User.new(:name => "David", :occupation => "Code Artist")
과 같은 것을 사용하여 한 번에 한 행에 대한 모든 값을 설정할 때입니다. 이 코드를 User.new(params[:user])
과 같이 변경하면 위험이 초래됩니다. 이제 최종 사용자가 매개 변수로 전달 된 해시를 악의적으로 조작하여 User.new
에 넣고 예상치 못한 변수를 설정할 수 있습니다. 따라서 attr_accessible
및 attr_protected
의 필요성으로 인해 최종 사용자가 직접 영향을 미칠 수있는 필드를 설정할 수 없게됩니다.
ActiveRecord의 기본 동작 중 일부는 취약점이 있습니다. 특히 사용자가 제출 한 양식에서 자동으로 속성을 업데이트하는 경우 mass updating can expose vulnerabilities. 내 생각 엔 대량 업데이트라는 용어가이 ActiveRecord 기능의 편의성과 취약점을 모두 다루는 핸들로 대중화되었다는 것입니다.
기본적으로, 대량 할당하지 않고,이 같은 모델을 만들 것입니다 :
user = User.new
user.first_name = params[:user][:first_name]
user.last_name = params[:user][:last_name]
대량 과제와 모델 자체가 그 세터 전화를 알아낼 것입니다 그리고 당신이 할 필요가
user = User.new(params[:user])
입니다
그렇습니다. 그것은 한 가지 방법으로 많은 변수를 설정하는 것입니다.