2010-04-22 4 views
0

PHP를 사용하여 사용자를 인증 한 뒤 그 내부에서 한 번의 .htaccess 사용자 이름 & 암호로 두 번째 인증을 다시받습니다. 이것은 모든 사용자에게 동일하지만 사용자 이름과 암호를 다시 입력하지 않아도되므로 암호로 보호 된 디렉토리를 입력 할 수있게됩니다. 나는 http://[email protected]:somedomain.com을 사용하지 않는 것을 선호합니다..htaccess 브라우저의 대화 상자를 막기 위해 PHP 스크립트의 인증

의견이 있으십니까?

답변

2

이렇게해서는 안됩니다.

다음 중 하나를

  1. 당신의 PHP 인증 방식을 사용하고 htaccess로 인증을 제거하기 위해 htaccess로 보호 된 디렉토리에 코드를 추가합니다.

  2. 인증 된 사용자가 모든 보호 된 콘텐츠에 액세스 할 수있는 새로운 PHP 페이지/스크립트를 작성하십시오. 보호 된 컨텐트를 웹 루트 밖으로 이동하거나 .htaccess 파일을 사용하여 모든 액세스를 거부하십시오. 스크립트는 파일에 액세스 할 수 있지만 사용자는 스크립트를 통해 액세스해야합니다.

0

죄송합니다. 사용자 이름 : pass @ url 스키마를 사용하려는 경우가 아니면 불가능하다고 생각합니다. 배후에서 아약스를 작성하면 브라우저가 해당 영역에 대한 승인을 기억할 것입니다 (어쩌면 실제로 해 본 적이 없을 수도 있음). 하지만 여전히 사용자 이름/패스가 필요합니다.

브라우저에서 암호를 일반 텍스트로 전송하지 않는 보안을 위해 (네트워크를 통해 암호를 전송하기 위해 https를 사용하고 있다고 가정합니다. 그렇지 않다면!) 나는 조금 성가 시게 될 것이라고 생각합니다. 사용자,하지만 내 의견으로는 번거롭지 않다.

물론 PHP의 다른 폴더에서 인증을 수행하여 문제를 해결할 수도 있고, 보호 된 코드 하나를 HTTP 인증과 함께 한 곳에 둘 수도 있지만, 이 작업을 수행.

2

여러 번의 로그인을 피하고 HTTP 인증이 필요한 경우 실제 로그인에 대해서만 HTTP 인증을 사용할 수 있습니다. 이는 PHP가 이러한 헤더를 생성하고 응답 할 수 있기 때문입니다.

http://php.net/manual/en/features.http-auth.php

사용자가 팝업 수신이 방법, PHP는 그것을 읽고 그에 따라 반응하고 브라우저가 더 프롬프트를 제거 이후의 요청을 전달합니다 수 있습니다.

참고 :이 솔루션은 CGI 버전의 PHP에서 사용할 수 없습니다.

관련 문제