문제

나는 현재 내 사이트 중 하나의 섹션에 대해 PHPBB2 포럼을 사용하고 있으며 이 사이트를 확장하고 싶습니다(새 페이지, 스크립트 등 추가).PHPBB2 포럼에 이미 로그인한 사용자만 이 페이지에 액세스할 수 있도록 제한하고 싶습니다.

실제로 특정 MemberGroup의 구성원만 이러한 페이지에 액세스할 수 있다면 좋을 것입니다.

내 사이트의 나머지 부분에서 동일한 로그인 자격 증명을 사용하고 구성원이 어느 그룹에 속해 있는지 확인할 수 있는 방법이 있습니까?

감사해요

(그런데 이 페이지는 PHP로 되어있습니다)

도움이 되었습니까?

해결책

사용자가 PHPBB에 로그인한 경우 항상 그런 것은 아니지만 데이터베이스에 대해 누가 누구인지 확인하고 읽을 수 있는 쿠키를 갖게 될 가능성이 높습니다.

이 경우 아래 쿠키 부스러기를 깨뜨리고 싶을 것입니다.

$_COOKIE["phpbb2mysql_data"]

예제를 사용하여 데이터베이스에 대해 쿼리해야 하는 데이터를 찾아보겠습니다.다음은 위 쿠키에서 발견된 청크입니다.

a:2:{s:11:"autologinid";s:0:"";s:6:"userid";s:1:"3";}

이를 위해 로그인한 PHPBB 사용자에 해당하는 "3"을 추출하고 싶을 것입니다.

해당 데이터를 직렬화 취소 해당 user_id를 꺼내려면 다음을 수행하십시오.

 $goo = unserialize($_COOKIE["phpbb2mysql_data"]);
 $extracted_id = $goo["userid"];

(덕분에 시대늑대 해당 쿠키의 위의 직렬화된 형식을 지적할 때)

해당 숫자는 데이터베이스에 대해 실행하여 구성원이 속한 그룹을 확인하는 데 유용합니다.그리고 당신은 phpbb_user_group 테이블(포럼 테이블의 접두어로 phpbb_가 있는 경우)

데이터베이스에서 그룹 ID를 추적하지 않으려면 일종의 조인을 수행하고 이름에 대해 테스트해야 합니다.어쩌면 다음과 같은 것일 수도 있습니다.

SELECT pug.user_id FROM phpbb_user_group pug 
 LEFT JOIN phpbb_groups g 
 ON pug.group_id=g.group_id
 WHERE pug.user_id='$extracted_id'
 AND g.group_name='Foo';

그 중 한 행을 뽑아낼 수 있다면 해당 Foo 그룹에 속한 로그인된 사용자임을 발견한 것입니다.

다른 팁

PHPBB2의 사용자 테이블을 사용하면 다른 페이지의 로그인 및 권한 코드입니다. 더럽지 만 작동합니다.

PHPBB2의 코드를 사용한다는 것은 다음을 의미합니다.

PHPBB2의 코드를 파고 PHPBB2가 사용자를 인증하는 방법을 파악하고 관련 코드 덩어리를 복사하십시오. PHPBB2가 상당히 구조화되면 PHPBB2 내에 몇 개의 파일 만 포함하여 주요 해킹 작업없이 사용할 수 있습니다. 멋지게 구조화되지 않으면 더럽고 추악해질 것입니다.

웹 사이트에 새로운 보안 추가를 테스트하는 것을 잊지 마십시오! 해킹을 제대로 얻는지 확인하십시오.

PHPBB 2의 사용자 및 그룹 테이블을 직접 사용할 수 있습니다. 내가 기억 하듯이, 비밀번호 열은 실제 비밀번호의 MD5 () 일뿐입니다.

이 트릭은 비밀번호가 (마지막으로) 소금에 절인 것처럼 PHPBB3에서 더 이상 작동하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top