2012-09-08 13 views
3

이 질문이 noobish이거나 중복되는 경우 저에게 안내 해드립니다.사용자 이름과 비밀번호가 필요합니다.

이런 종류의 인증을 구현하는 방법이 궁금합니다. 나는 상당히 잃었어요이 검색하는 키워드를 모르기 때문에

enter image description here

내가 요구하고있다. 내 생각에 사용자가 내 도메인 (예 : http://mysite.comhttp://mysite.com/tools)에 액세스하려고 할 때마다이 작업을 수행 할 계획입니다.

+0

당신이 사용하고있는 웹 서버하시오, 그것은 많이 :) –

+0

흠 도움이 될 것입니다 인증 모듈을 사용할 수 있습니다, 아파치 & PHP 태그. 그럴 거니? –

+0

처럼 보입니다. htaccess http://www.javascriptkit.com/howto/htaccess.shtml을 찾고 있습니다. – FirmView

답변

7

찾고있는 키워드는 htaccess, htpasswd, .htaccess입니다.

은 궁극적으로 당신은 당신이 보호하고자하는 디렉토리에 .htaccess 파일을 넣어, 그것은 당신의 htpasswd 파일로 요구 사항을 확인하게됩니다 (당신이 아파치를 사용 제공).

예 : 내 서버에서 사람들이 내 private 디렉토리를보고 싶지 않습니다.

$ sudo htpasswd -c /etc/apache2/.htpasswd benjamin 

위의 명령 ^에서 benjamin 것을 우리가 로그인 할 때 사용하는 사용자 이름입니다. 우리는 몇 가지 보안에 대한 우리의 웹 폴더 외부 .htpasswd 파일을 싶습니다

. 그것은 HTTP 인증

http://en.wikipedia.org/wiki/Basic_access_authentication

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

라고

AuthUserFile /etc/apache2/.htpasswd 
AuthGroupFile /dev/null 
AuthName Authenticate 
AuthType Basic 
require user benjamin 
+0

벤자민은 여기'htpasswd -c /etc/apache2/.htpasswd 벤자민이 암호인가? –

+0

@LeandroGarcia 아니요, 사용자 이름입니다. –

+0

이것은 (당신의 예제에 기초한)'private' 디렉토리의 하위 디렉토리에 적용 되는가 아니면 루트 디렉토리 자체에만 적용 되는가? –

0

WWW-Authenticate 헤더를 보내기 :

그런 다음 내 private 디렉토리에 나는이 포함 된 .htaccess 파일을 넣어 것 인증을위한 프롬프트

<?php header('WWW-Authenticate: Basic realm="My Realm"');?> 

인증 자격 증명은 다음 $_SERVER 변수에 사용할 수

이름 - $_SERVER['PHP_AUTH_USER'] 비밀번호 - $_SERVER['PHP_AUTH_PW']

확인 사용자 이름 및 암호와 일치하지 않는 경우에 HTTP/1.0 401 Unauthorized 상태를 보내 다시 시도하거나 다시 입력하려면 WWW-Authenticate 헤더를 다시 보내십시오. 벤자민이 언급 한 바와 같이

, 당신은 또한

http://httpd.apache.org/docs/2.2/howto/auth.html#gettingitworking

+0

이 사이트의 아이디어는 앞으로 방문자를 도울 수있는 유용한 Q & A 게시물 모음을 만드는 것입니다. 링크에만 의존하는 대답 (비록 그것이 맞다하더라도)은 링크 썩음 (link rot)에 취약하고, URL이 죽으면 대답은 가치가 없어 질 것입니다. 혼자 서있을 수 있고 참조 할 수있는 링크를 제공하는 대답을 제공하는 것이 항상 좋습니다. – Lix

+0

감사합니다. –

+1

@Lix AFAIK httpd 매뉴얼 및 PHP 수동 링크 구조는 몇 년 동안 변경되지 않았습니다. 그러나 고마워, 나는 다음 번부터 그것을 명심 할 것이다. –

관련 문제