내 응용 프로그램에 대한 보안 인증/권한 부여 모델을 만드는 방법에 대한 조언을 찾고 있습니다. 나는 이것을 CakePHP에 쓰고 있지만이 모델을 어떤 응용 프로그램으로도 사용하고 싶습니다. 내 모델에 대한 의견을 듣고 더 나은 모델을 만들 수 있다면 정말 고맙겠습니다.안전한 인증/권한 부여 모델 만들기
$getUser= $this->Session->read('get_logged_user');
if($getUser == null){
//no credentials, redirect
$this->render('../Elements/User/login');
}else{
if($getUser->isAuthenticated==false){
//not authenticated
$this->render('../Elements/User/login');
}else{
//its ok, show the page. if needs to check roles, iterate of the roles array
}
}
기본적으로, 내가 올바른 세션을 사용할 수 있는지 확인하십시오
내가 보호하려는 각보기는 그것의 컨트롤러에 다음 코드를 가지고 : 이것은 내가 가지고있는 것입니다. 그렇지 않은 경우 로그인하지 않았으므로 로그인 페이지로 리디렉션됩니다. 그렇다면 승인을 확인하십시오. 내 세션은 성/이름, 사용자 이름, 역할 배열 및 isAuthenticated 부울로 구성된 클래스입니다. 사용자가 내 앱에 로그인하면이 개체가 생성되어 세션에 추가됩니다. 클래스는 데이터베이스에 대해 인증하고 사용자의 모든 필수 정보 (이름, 역할 등)를 취소합니다. 역할은 사용자가 볼 수 있고 볼 수없는 것을 결정하기 위해 앱에서 추가로 사용할 수 있습니다. 사용자가 "로그 아웃"버튼을 클릭하면이 세션 객체가 파괴됩니다.
이 방법은 안전한가요? 토큰이나 다른 것을 사용해야합니까? 더 많은 코드가 필요한 경우 알려 주시면 게시 할 수 있습니다. cakePhp에는 보안 플러그인이 있지만 처음부터 내 자신을 만들 것이라고 알고 있습니다.
감사합니다.
조언 - 처음부터 나만의 것을 만들지 마세요. 인증은 심각한 비즈니스입니다. 전문가가 군중을 끌어들이도록하십시오. 혼란스러워하는 소리는 들리지 않지만,이 간단한 결정을 스스로 할 수 없다면, 아직 자신의 것을 결정하기에 충분하지 않습니다. 그냥 배울 좋은 사람들을 공부하십시오. – jmadsen
안녕하세요, 귀하의 우려에 감사드립니다하지만 내 자신의 지식을 위해 이것을 쓰고 있어요. 안전한 앱을 만드는 방법에 대해 자세히 배우고 내 모델을 만드는 것이 통조림 솔루션을 사용하는 것이 더 유용 할 것입니다. – jason
듣기 좋은데 - 가장 좋은 방법은 여러 가지 기존 모델을 연구하고 왜 그들이 선택한 것을했는지 이해하는 것입니다. 인터넷에서 무작위 조언은 매우 신뢰할 수 없을 것입니다 – jmadsen