테스트 사이트 - 개발 중인 베타 버전입니다

사이트를 회원제로 운영하고 싶다면 head.php 파일에 간단히 추가 후 사용 하세요

· 3개월 전 · 572 · 9

[code]

$current_page = htmlspecialchars(basename($_SERVER['PHP_SELF']), ENT_QUOTES, 'UTF-8');
$exceptions = ['register.php', 'register_form.php', 'login.php'];

// 로그인 검사
if (!in_array($current_page, $exceptions, true)) {
    if (!$is_member && empty($member['mb_id'])) {
        header("Location: " . G5_BBS_URL . "/login.php");
        exit;
    }
}

[/code]
설정된 테마의 head.php 파일에 위의 내용을 추가하면 회원 가입 외에는 모두 로그인을 해야만 방문 가능 합니다.
회원제로 운영하는 사이트에 쉽게 적용할 수 있습니다.
@카이루님의 조언을 참고하여 코드를 수정 하였습니다.

추천이 필요해서 추천 좀 부탁드립니다. ㅡ.ㅡ;

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 9개

3개월 전

제목과 내용이 상반 되는것 아닌가요.

제가 머리가 안 좋은가 봐요..

3개월 전

@들레아빠 

헐 감사합니다.
헷갈렸습니다. ㅜㅜ

3개월 전

$_SERVER['PHP_SELF']의 XSS 취약점
- PHP_SELF는 현재 실행 중인 스크립트의 경로를 반환하지만, URL에 추가된 경로 정보도 포함될 수 있어 공격자가 <script> 태그를 삽입할 수 있습니다.
- 예: http://example.com/index.php/<script>alert('XSS')</script>
이 경로가 그대로 출력되면 XSS 공격이 발생할 수 있습니다.

 

$_SERVER['PHP_SELF']를 사용할 때는 반드시 htmlspecialchars()로 이스케이프 처리

htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8');

 

function is_logged_in() {
    return isset($_SESSION['mb_id']) && !empty($_SESSION['mb_id']);
}

 

 

<?php
session_start();

// 현재 페이지 이름 가져오기 (보안 위해 htmlspecialchars 적용)
$current_page = htmlspecialchars(basename($_SERVER['PHP_SELF']), ENT_QUOTES, 'UTF-8');

// 예외 페이지 목록
$exceptions = ['register.php', 'register_form.php'];

// 로그인 여부 확인 함수 (세션 기반 인증)
function is_logged_in() {
    return isset($_SESSION['mb_id']) && !empty($_SESSION['mb_id']);
}

// 로그인 안 된 상태에서 예외 페이지가 아닐 경우 로그인 페이지로 리디렉션
if (!in_array($current_page, $exceptions)) {
    if (!is_logged_in()) {
        // 내부 경로만 허용하도록 URL 하드코딩
        header("Location: /bbs/login.php");
        exit;
    }
}
?>

 

3개월 전

@카이루 
카이루님 좋은 정보 감사합니다.

3개월 전

감사합니다 ^^

3개월 전

@민트다이어리 

감사합니다.

감사합니다.

3개월 전

@써맨 

감사합니다.

1개월 전
고맙습니다 ~

게시글 목록

번호 제목
24149
24140
24133
24125
24119
24109
24105
24101
24093
24089
24077
24074
24071
24070
24067
24056
24050
24046
24043
24040
24037
24036
24035
24034
24021
24017
24005
24002
23990
23980