외부접근 차단?
본문
3등급 이상인 회원리스트를 다운로드 할 수 있는 페이지를 만들었습니다.
관리자만 엑셀 파일로 다운로드 할 수 있게끔 만들었는데요...
문제는 주소창에서 이 파일에 대한 경로명을 직접입력하면 권한에 상관없이 다운로드 되고 있습니다.
권한 없는 사람의 주소 직접 입력으로 페이지에 접근하는 것을 차단할 방법이 있을까요?
<?
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=".date('Ymd').".xls");
header("Content-Description: PHP5 Generated Data");
header("Content-charset=utf-8");
echo("<meta http-equiv='content-type' content='text/html; charset=utf-8'>");
include "_common.php";
if ($member['mb_level'] < 9)
alert("관리자만 접근 가능한 페이지입니다", "/");
?>
<table border="1">
<tr align="center">
<td>번호</td>
<td>이름</td>
<td>가입일</td>
<td>연락처</td>
<td>Email</td>
</tr>
<?
$mem = sql_query("SELECT * FROM g5_member where mb_level >= 3 && mb_leave_date = '' && mb_intercept_date = '' && mb_email_certify != '' ORDER BY mb_no DESC");
while($row = sql_fetch_array($mem)) {
?>
<tr>
<td><?=$row['mb_no']?></td>
<td align="center"><?=$row['mb_name']?></td>
<td align="center"><?=date("Y-m-d", strtotime($row['mb_datetime']));?></td>
<td align="center"><?=$row['mb_hp']?></td>
<td><?=$row['mb_email']?></td>
</tr>
<?
}
?>
</table>
답변 2
안녕하세요.
아래처럼 변경해 보세요~
<?php
include_once('./_common.php');
if ($member['mb_level'] < 9)
alert("관리자만 접근 가능한 페이지입니다", "/");
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=".date('Ymd').".xls");
header("Content-Description: PHP5 Generated Data");
header("Content-charset=utf-8");
echo("<meta http-equiv='content-type' content='text/html; charset=utf-8'>");
?>
<table border="1">
<tr align="center">
<td>번호</td>
<td>이름</td>
<td>가입일</td>
<td>연락처</td>
<td>Email</td>
</tr>
<?php
$mem = sql_query("SELECT * FROM g5_member where mb_level >= 3 && mb_leave_date = '' && mb_intercept_date = '' && mb_email_certify != '' ORDER BY mb_no DESC");
while($row = sql_fetch_array($mem)) {
?>
<tr>
<td><?=$row['mb_no']?></td>
<td align="center"><?=$row['mb_name']?></td>
<td align="center"><?=date("Y-m-d", strtotime($row['mb_datetime']));?></td>
<td align="center"><?=$row['mb_hp']?></td>
<td><?=$row['mb_email']?></td>
</tr>
<?php
}
?>
</table>
if (!$is_admin)
alert("관리자만 접근 가능한 페이지입니다", "/");