같은 기능의 로그인은 suPHP의 파일 권한을 사용하도록 어떻게 설계 될 수 있습니까? 예를 들어 www.example.com
에 웹 사이트가 있고 각각 자신의 홈 디렉토리가있는 다음 두 명의 사용자가 각각 test.php
및 validateUser.php
스크립트 (root, www-data, apache ...)에 속한 스크립트를 /home
디렉토리suPHP와 함께 로그인 구현
/home/ ├── validateUser.php ├── user1 │ └── test.php └── user2 └── test.php
user1
그 반대의 경우도 마찬가지 www.example.com/user2/test.php
를 방문하여 user2's
스크립트에 액세스 할 수 있습니다. 내가 원하는 것은 mod_rewrite과 같은 것을 사용하여 들어오는 모든 요청을 validateUser.php
에 전달하는 것입니다. 그러나 이렇게하면 대상 test.php
스크립트가 아닌 validateUser.php
의 소유자로 모든 스크립트를 실행해야합니다.
suPHP가 시작되기 전에 php 스크립트를 호출 한 다음 suPHP가 계속 진행되도록 허용하거나 완전히 중단합니다.
편집이 내가 참을 수 있어요 두 번째 현상금입니다. 처음 나는 Gustav b/c에게 그가 좋은 것을 주었다. partial answer. 나는 지금까지 시도한 것을 언급 할 것이고, 왜 그들 중 누구도 나를 위해 일하지 않을 것이다.
1) mod_rewrite을 사용하여 URL을 validateUser.php
으로 리디렉션하여 사용자를 로그인하거나 전화를 걸 스크립트를 호출하려고 시도했습니다. 문제는 내가 가상 호스트를 각 사용자가 자신의 가상 사이트 (예 : www.user1.example.com
, www.user2.example.com
... 잘못된 디자인 접근 방식 인 경우이를 불합리하게 지적 함)를 설정했기 때문입니다. OS가 위와 같이 파일 구조를 볼 수 있지만 따라서, 온라인, 루트 디렉토리는 같은
VirtualHost = www.user1.example.com
├── validateUser.php
└── test.php
VirtualHost = www.user2.example.com
├── validateUser.php
└── test.php
로 당연히 난 그냥 모든 사용자의 디렉토리에 validateUser.php
의 사본을 이동 설정되어 있습니다. 문제는 이제 사용자가 파일을 삭제하고 원하는 파일을 넣을 수 있습니다 (전혀 로그인하지 않아도 됨). 이 문제를 해결할 수있는 방법은 홈 폴더를 끈적 거리게 만드는 것입니다. 홈 폴더에 넣는 것이 좋습니다. 루트가 validateUser.php
을 소유하게하십시오. 그러나 이제는 suPHP이므로 AS 루트로 실행됩니다. 그것이 내가 포기한 곳입니다.
2) Gustav의 mod_auth
제안을 사용할 수 있지만 이전 학교 웹 사이트처럼 비밀번호를 요구하는 것이 맘에 들지 않습니다.
3) 가상 호스트간에 리디렉션 할 수 있다면 1)에 대한 변형을 고려했습니다. 예를 들어,
VirtualHost = www.user1.example.com
└── test.php
VirtualHost = www.user2.example.com
└── test.php
VirtualHost = www.admin.example.com
└── validateUser.php
그런 다음 www.admin.example.com/validateUser.php
에 사용자의 모든 트래픽을 리디렉션 mod_rewrite를 사용하므로 같은 가상 호스트를 재구성하고, 사용자는 (로그인이 성공하면 나) 사용자가 다시 리디렉션에 기록되어있는 경우 처음에 로그인을 시도한 사이트입니다. 이것의 이점은 심지어 가능하다면 사용자가 자신의 가상 호스트로 돌아갈 때까지 suPHP가 실행되지 않는다는 것입니다.
나는 내 질문에 아무런 해결책이 없다고 확신한다. http://stackoverflow.com/a/9561335/654789 – puk