대량 할당은 응용 프로그램이 해시 값을 사용하여 레코드를 만들 수있게 해주는 레일스의 기능입니다. 발생할 수있는 두 가지 질량 할당 경고가 있습니다. 첫 번째는 질량 할당이 실제로 발생하는 경우입니다. 예 : -대량 할당에 대한 거짓 경고는 model.new 및 model.update_attibutes 및 model.create의 Brakeman Gem에서 throw됩니다.
User.new(params[:user])
표에서 사용할 수있는 필드와 매핑하기 위해 직접 해시를 사용하지 않지만.
User.new(:first_name => params[:first_name], :last_name => params[:last_name ], :address => params[:address])
또는
user.update_attributes(:first_name => params[:first_name], :last_name => params[:last_name ], :address => params[:address])
왜 이것이 대량 할당 취약점을 선도하고 대신 내가 좋아하는 일을하고 있어요? 맹목적으로 해시를 지정하지 않으므로 표의 속성 중 일부만 선택적으로 업데이트하고 있습니다.
user = User.new
user.first_name = params[:first_name]
user.last_name = params[:last_name ],
user.address = params[:address]
user.save
하지만이 동수가 문제로 경고되지 않도록, 불필요한 코드를 작성 같다 : 이것에 대한
한 수정 프로그램은 다음을 수행하는 것입니다. 이것은 실제로 한 줄 대신에 4 줄로 똑같은 일을합니다.
누군가가 나를 실제 문제가 무엇인지 여기에 알리거나 이것이 허위 경보임을 확인하고이 허위 경보가 나타나지 않도록 할 수 있습니까? 내가 루비 1.8.7를 사용하고
은, accepts_nested_attributes_for
에 의한 값으로 대량 할당 문제가있을 수 있습니다, 동수 3.0.5
감사합니다. @ 재 스틴. –