2014-04-11 4 views
1
def user_params 
    if current_user.admin? 
    params.require(:user).permit(:name, :email, :password, :student, :admin) 
    else 
    params.require(:user).permit(:name, :email, :password) 
    end       
end 

사용자의 역할을 업데이트 할 수 있기를 바랍니다.이것은 강력한 user_params 강력한 매개 변수 구현입니까?

Users_params는 해커가 사용자의 역할을 변경하지 못하게하는 강력한 매개 변수입니다.

아래 코드는 안전하지 않습니까? GitHub 전체에서이 코드를 볼 수 있습니다.

def user_params 
    params.require(:user).permit(:name, :email, :password, :student, :admin)       
end 
+0

사용자를 업데이트하기 전에 "params.permit!" 그래서 당신이 업데이 트하실 수 있습니다 .. –

+0

위에서 언급 한 첫 번째 해결책은 정확합니다. 변경할 수있는 속성 만 항상 허용해야합니다. –

답변

0
def user_params 
    if current_user.admin? 
    params.require(:user).permit! 
    else 
    params.require(:user).permit(:name, :email, :password) 
    end       
end 
+1

누가 관리자가 모든 사용자 매개 변수를 변경할 수 있어야한다고 말했습니까? –

관련 문제