사이트를 회원제로 운영하고 싶다면 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년 전 | 4443 | ||
| 2664 |
선택과집중
|
4개월 전 | 583 | |
| 2663 |
|
4개월 전 | 631 | |
| 2662 |
|
4개월 전 | 587 | |
| 2661 |
선택과집중
|
4개월 전 | 516 | |
| 2660 | 4개월 전 | 592 | ||
| 2659 |
Modify
|
4개월 전 | 657 | |
| 2658 |
선택과집중
|
5개월 전 | 418 | |
| 2657 | 5개월 전 | 455 | ||
| 2656 |
|
5개월 전 | 966 | |
| 2655 |
선택과집중
|
5개월 전 | 551 | |
| 2654 | 5개월 전 | 407 | ||
| 2653 |
선택과집중
|
5개월 전 | 595 | |
| 2652 | 5개월 전 | 402 | ||
| 2651 | 5개월 전 | 451 | ||
| 2650 |
선택과집중
|
5개월 전 | 331 | |
| 2649 |
선택과집중
|
5개월 전 | 429 | |
| 2648 | 5개월 전 | 444 | ||
| 2647 |
welcome
|
5개월 전 | 548 | |
| 2646 |
디지털홍익인간
|
5개월 전 | 458 | |
| 2645 | 5개월 전 | 472 | ||
| 2644 |
선택과집중
|
5개월 전 | 517 | |
| 2643 | 5개월 전 | 462 | ||
| 2642 | 5개월 전 | 374 | ||
| 2641 | 5개월 전 | 365 | ||
| 2640 | 6개월 전 | 396 | ||
| 2639 | 6개월 전 | 1368 | ||
| 2638 |
|
6개월 전 | 520 | |
| 2637 |
세르반데스
|
6개월 전 | 408 | |
| 2636 |
선택과집중
|
6개월 전 | 574 | |
| 2635 |
선택과집중
|
6개월 전 | 688 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기