2012-01-26 2 views
0

레일 3.2를 사용하고 1.5.3을 고안합니다.레일 앱의 보안을 강화하는 가장 좋은 방법은 무엇입니까?

before_filter :authenticate_user! 

나는 숨을 몇 가지 논리를 썼다 : 나는 힘 로그인에 대한 게시물 컨트롤러이 추가 How To: Add an Admin Role

유증 위키 옵션 2에 설명 된대로

나는 나의 모델의 관리자 속성을 추가 내가보기에 편집/새 링크는 당신이 관리자인지 여부에 따라 달라집니다.

더 많은 일을해야한다고 생각합니다. 새 작업/편집/삭제 작업을 더 안전하게해야합니까? 그렇다면 어디에서?

답변

0

답변이 작동 할 수있다 그러나 당신이 some logic to hide the edit/new links in my views를 사용하는 경우 전체 응용 프로그램의 보안을 보장하기 위해 매우 어렵고 내가 security testing 아무리 당신에게 어쩌면 당신이 뭔가

잊고있는 느낌을주지 않았 확신 해요 누군가에 로그인 할 수 있습니다 예를 들어

,,,, (관리자 프로파일을 갖는되지 않음) (URL에)로 이동, : /users/edit/3을하고 가치있는 정보를 손상 시작 ....

상황은 다음과 같습니다에만 고안 인증을 제공하지만 승인은 다른 방법으로 시행되어야합니다. 그렇지 않으면 위의 작업을 수행 할 수 있습니다 ...

나는 개인적으로 테스트 한 하나 인 CanCan (rbates ofcourse에서)을 권장하며, 단지 문서와 예제를 읽고 구성하는 것이 쉽습니다. github ..... 도움이 되길 바랍니다!

+0

Cancan을 제안 해 주셔서 감사합니다. 나는 일을 파악하기 시작했고 컨트롤러 레벨에서 일을 보호하기위한 코드를 작성했습니다. Cancan은 더 간단하고 검증 된 솔루션 일 것 같습니다. 나는 Ruby/Rails n00b이므로 쉽게 문제를 해결할 수 있습니다 ;-) – bigdaveyl

0

사용자의 인증 및 권한 부여 메커니즘이 보안을 유지 관리하고 보안 업데이트로 정기적으로 업데이트되는지 확인해야합니다.

당신이 뭔가를 놓치고 있다는 그 침몰 느낌은 테스트에 의해서만 확실히 커버 될 수 있습니다. 따라서 Devise 설치를 설정하는 방법이 실제로 정확하고 관리자가 아닌 사용자는 액세스 권한이 없어야하는 항목에 액세스 할 수 없음을 확인하는 몇 가지 테스트를 작성하십시오. 그런 다음 새 제한 사항을 추가 할 때 보안 제한 사항을 업데이트해야합니다. 확인 유증이 작동하는지 테스트를 작성할 필요가 없습니다

당신이 -하지만 당신이 할 그것의 사용은 당신이 생각하는 것입니다 있는지 확인하기 위해 테스트를 작성해야합니다 (즉, 비 관리자가 shouldn 경우 관리자 페이지로 이동하여 비 관리자로 로그인하는 테스트 작성, 해당 페이지에 액세스 시도, 테스트에서 사용자가 리디렉션되었는지 확인하고 '액세스 거부'메시지가있는 경우 , 그건 발사입니다). 그렇게하면 실수로 보안 액세스가 중단되는 경우 적어도 테스트 스위트에있는 테스트에 의해 발견 될 가능성이 있습니다.

배포 할 때마다 모든 테스트 (특히 보안 테스트)가 실행되고 통과하는지 확인한 다음 테스트를 실행하십시오. 그 후에는 경계해야하며, 그게 당신이 할 수있는 모든 것에 관한 것입니다.

+0

rspec을 사용하여 테스트 케이스를 작성하여 예상대로 작동하는지 확인하려고했습니다. 분명히, 내가 올바르게 쓰면 나는 일이 더 자신감을 가져야한다. – bigdaveyl

+1

그건 꽤 좋은 계획 같아. JM이 링크를 숨김으로써 보안에 대해 언급 했으므로 테스트에서 직접 액션을 수행하고 잠재적 인 해커가 사용자 지정 URL 및 매개 변수를 작성하고 링크 숨기기에만 의존하지 않는다고 가정합니다 보안을 위해 - 즉브라우저에서 들어오는 매개 변수를 신뢰하지 마십시오. – jefflunt