2026, 새로운 도약을 시작합니다.

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

[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개

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

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

@들레아빠

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

$_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;
    }
}
?>

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

감사합니다 ^^

@민트다이어리

감사합니다.

@써맨

감사합니다.

고맙습니다 ~

댓글 작성

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

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,598
2741 3일 전 조회 110
2740 4일 전 조회 102
2739 1주 전 조회 208
2738 1주 전 조회 217
2737 1주 전 조회 181
2736 1주 전 조회 278
2735 3주 전 조회 281
2734 3주 전 조회 263
2733 1개월 전 조회 265
2732 1개월 전 조회 301
2731 1개월 전 조회 266
2730 1개월 전 조회 224
2729 1개월 전 조회 353
2728 1개월 전 조회 245
2727 1개월 전 조회 422
2726 1개월 전 조회 256
2725 1개월 전 조회 330
2724 1개월 전 조회 358
2723 1개월 전 조회 267
2722 1개월 전 조회 299
2721 1개월 전 조회 211
2720 2개월 전 조회 304
2719 2개월 전 조회 307
2718 2개월 전 조회 201
2717 2개월 전 조회 336
2716 2개월 전 조회 202
2715 2개월 전 조회 311
2714 2개월 전 조회 273
2713 2개월 전 조회 376
2712 2개월 전 조회 289
🐛 버그신고