프로필 보안기능 강화
본문
DSc(dsclub)의 기반인 Twave에서의 개인 프로필 탭(본인 프로필 수정할 수 있는 화면)의 보안, 팔로우 버그유도 부분을 파악하여 적절하게 차단/리다이렉트 처리하여 버그 또는 보안문제가 일어나지 않도록 수정하였습니다.
(Twave 테마에 적용 예정)
/member_profile.php (member_profile.skin.php)
<?php
if(!$member['mb_id']) alert('로그인후 이용해주세요', G5_BBS_URL.'/login.php'); // 로그인안하면 로그인페이지로
include_once(G5_LIB_PATH.'/latest.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
// 현재 URL의 mb_id 파라미터 값을 가져옵니다.
$current_mb_id = isset($_GET['mb_id']) ? $_GET['mb_id'] : '';
// 회원의 mb_id 값
$member_mb_id = $member['mb_id'];
// mb_id가 일치하지 않는 경우
if ($current_mb_id !== $member_mb_id) {
// 메시지를 출력합니다.
echo "<script>alert('타인의 개인 프로필 탭은 확인할 수 없습니다.');</script>";
// 현재 도메인을 자동으로 가져옵니다.
$current_domain = ($_SERVER['HTTPS'] ? "https://" : "http://") . $_SERVER['HTTP_HOST'];
// 도메인으로 리다이렉트합니다.
echo "<script>window.location.href = '$current_domain';</script>";
}
?>
/profile.php (profile.skin.php)
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/latest.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
$member_mb_id = get_member($row['mb_id']);
// 현재 URL의 mb_id 파라미터 값 가져오기
$current_mb_id = isset($_GET['mb_id']) ? $_GET['mb_id'] : null;
// 회원 정보의 mb_id
$member_mb_id = $member['mb_id'];
// mb_id가 일치하는지 확인
if ($current_mb_id === $member_mb_id) {
// 일치할 경우 리다이렉트
header("Location: /bbs/member_profile.php?mb_id=" . urlencode($member_mb_id));
exit; // 스크립트 종료
}
?>
등록된 댓글이 없습니다.