2013-04-12 5 views
2
attr_accessible :email, :password, :password_confirmation 

그렇지 않은 경우 attr_accessible을 제거하면 '정의되지 않은'오류가 발생하지 않도록하는 방법의 예를 들어 주시겠습니까?비밀번호 필드를 attr_accessible로 설정하는 것이 안전합니까?

+0

왜 암호를 알아야합니까? – ant

+0

? 왜냐하면 사용자가 인증 할 때 컨트롤러에서 DB에 입력 비밀번호가 같은지 확인하기 때문입니다. –

답변

2

안전합니다. Attr_accessible은 응용 프로그램 논리를 제어하는 ​​속성에만 위험합니다. 예를 들어 "이 사용자가 관리자인지 확인했습니다"라는 플래그가 있고 attr_accessible이기 때문에 사용자가 설정할 수 있습니다. 그러면 취약점입니다.

암호는 사용자가 제공하는 정보이므로 동일한 사용자가 설정할 수 있으므로 아무 것도 변경되지 않습니다.

2

보안 편집증 경우,이 메소드 암호를 정의하는 할 수있는 :

def password 
    self.password 
end 

암호를 수동으로 설정할 수 없습니다 이런 식으로.

하지만 devis와 같은 많은 로그인 젬이 attr_accessible에 비밀번호가 필요하기 때문에 걱정하지 않아도됩니다.

+0

하) 감사합니다. 나는 편집증이 아니지만 해킹이 어떻게 작동하는지 모르기 때문에 그러한 문제가 보안에 어떻게 반영되는지 말할 수는 없습니다. 방금 보안과 관련이 있다는 것을 알았습니다.) –

관련 문제