2011-06-12 4 views
1

PHP/MySQL 웹 애플리케이션을 구축 중입니다. 사용자가 로그인하고 다양한 세션 변수가 설정됩니다.PHP로 .htaccess 폴더 사용자 이름/비밀번호 적용하기

사용자가 파일 (모든 종류 - 이미지, pdf, .doc 등)을 업로드 할 수있는 웹 서버의 폴더가 있습니다. 나는이 폴더를 보호하여 URL에 타이핑하지 않고 로그인하는 것을 막기 위해이 폴더를 보호하고 싶습니다. 이 폴더에있는 파일을 탐색 할 수 없습니다.

멋지게 작동하는 내 cpanel을 사용하여 비밀번호를 적용 할 수 있습니다. 그러나 사용자가 응용 프로그램에 로그인해야하고이 보호 된 폴더의 파일을 처음 탐색 할 때 보호 된 폴더의 사용자 이름/암호를 묻는 메시지가 나타납니다. 보호 된 폴더의 사용자 이름/암호를 입력 할 필요가 없도록 만들고 싶습니다.

사용자가 로그인하여 세션 변수를 설정하면 PHP를 사용하여 동시에 보호 된 폴더의 사용자 이름/비밀번호를 설정할 수있는 방법이 없으므로 메시지가 표시되지 않습니까? 감사합니다. 이안.

답변

0

내가 접근 한 방식은 그들이 액세스하는 것으로 생각되는 보호 된 폴더가 실제 보호 된 폴더가 아니라는 것입니다. PHP를 통해서만 인터페이스를 사용하고 로그인 한 경우 (위조 할 수 있습니다. htaccess 적절한 웹 authetification 코드를 보냄으로써 http://php.net/manual/en/features.http-auth.php 참조)

거기에서 "로그인"하면 말할 수 있고 그렇지 않으면 코드가 표시 될 수 있습니다. "로그인하지 않았다면 로그인 할 수 있습니다. 이 영역에 액세스하려면 로그인해야합니다. "

간단하지만 효과적입니다.

물론 기억해 둬요, 합리적인 사람들은 당신이 http://user:[email protected]/files을하면 자동으로 웹 인증 정보를 보냅니다.

+0

답장을 보내 주셔서 감사합니다. 나는 http 인증 페이지 링크를 보았습니다. 페이지가로드 될 때 $ _SERVER [ 'PHP_AUTH_USER'] & $ _SERVER [ 'PHP_AUTH_PW']의 값을 설정할 수 있습니까? 그러면 사용자가 보호 된 폴더 user/pw를 묻는 메시지가 표시되지 않습니까? 나는 당신이 url에 사용자/pw를 추가 할 수 있다는 것을 몰랐습니다 - 일반 텍스트로 보내지는 것에 대한 팝업에 대한 경고는 이제 의미가 있습니다! 그 대답은 PHP 페이지에서 클릭 한 URL에 user/pw를 추가 할 수 있다고 생각했지만 IE에서는 작동하지 않습니다. –

+0

사용자 이름/암호를 확인하는 방법에 따라 다르지만 작동해야합니다. 확실히 사용자 이름/암호 프롬프트를 차단해야합니다. Internet Explorer에서도 ftp와 동일하게 작동합니다. – BugFinder

0

PHP 세션 변수를 .htaccess 레벨에서 얻을 수 있다고 생각하지 않습니다.

당신이 할 수있는 일은 로그인 한 사용자를 확인하고 파일을 반환하거나 '로그인하지 않음'페이지로 리디렉션하는 PHP 스크립트에 대한 액세스를 다시 작성하는 것입니다.

0

나는 몇 년 전에도 해봤지만 cpanel에서 잘 작동했습니다. 프로그래밍 방식으로 cpanel의 디렉토리 보호 설정 페이지를 호출하고 거기에 사용자 이름/암호를 추가했습니다. 그래서 cpanel이 서버 관리를 담당했습니다. 그러나 나는 그것이 여전히 작동하는지 단서가 없습니다.

.htaccess 파일과 .htpasswd 파일을 만드는 데 사용할 수있는 라이브러리가 있습니다. 나는 그것이 작동하는지 말할 수 없도록 나는 한번도 사용하지 않았다.

.htaccess와 .htpasswd 만하는 다른 라이브러리도 기억하기 때문에 인터넷 검색으로 뭔가를 찾을 수있다.