2011-08-22 9 views
1

제 상황입니다. 페이지가 다시로드되면 Security 구성 요소의 requireAuth() 기능이 모든 양식에 대해 새 키를 생성한다고 들었습니다. 하지만 난CakePHP에서 보안 구성 요소 만들기

function beforeFilter() 
{ 
... 
$this->Security->requireAuth(); 
} 

는하지만 여전히 내 응용 프로그램의 형태 중 어느 것도 키를 생성하지 않습니다 아래의 코드를 사용하여 내 응용 프로그램에있는 모든 단일 컨트롤러에서 그것을 시도했습니다. 나는 심지어 양식을 제출했습니다, 여전히 열쇠는 같습니다. 내 Security.level$this->params['_Token']가 설정되어있는 경우

+0

'requireAuth'는 양식과 관련이 없습니다. 양식 작성시 FormHelper를 사용하고 있습니까? 또한, 당신은 옳은 것을 찾고 있는지 확신합니까? – deceze

+0

@deceze 폼용 헬퍼를 사용하고 있습니다. 핵심 가치를 볼 수 있습니다. 그러나 모든 양식에 대해 항상 동일합니다. 그리고 ri8 일을 찾고 있어요. – shahalpk

+0

당신은'' – deceze

답변

1

편집 대답

core.php이 같은 인까지 토큰 등의 FormHelper의 소스 코드를 살펴보면에서 high로 설정, 그것은 숨겨진 필드로 $this->params['_Token']['key']를 사용 값. 반면에 숨겨진 필드 id은 토큰 키가 아닌 임의로 생성됩니다.

$this->Form->end() 메서드를 사용하는 경우 $this->params['_Token']이 설정되면 필드는 secure()이라는 메서드를 통해 실행됩니다. 이것은 기본적으로 양식 필드를 직렬화하고 Security::hash()을 통해 실행하여 일련 화 된 필드의 SHA1 해시를 만듭니다. 양식이이 해시로 변조 된 경우 원래 토큰과 다를 수 있으므로 Cake는 양식이 변조되었음을 알고 있습니다.

$this->Security->requireAuth()은 양식과 관련이 없으며 SSL을 요구하는 동작을 설정합니다.

+0

나는 SSL 부분을 얻지 못했습니다. requireAuth()의 사용을 알 수 있습니까? – shahalpk

관련 문제