채택완료

외부접근 차단?

2021-04-26 (월) 19:03:31 2,521

3등급 이상인 회원리스트를 다운로드 할 수 있는 페이지를 만들었습니다.

관리자만 엑셀 파일로 다운로드 할 수 있게끔 만들었는데요...

문제는 주소창에서 이 파일에 대한 경로명을 직접입력하면 권한에 상관없이 다운로드 되고 있습니다.

권한 없는 사람의 주소 직접 입력으로 페이지에 접근하는 것을 차단할 방법이 있을까요?

Copy
<?
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개 / 댓글 2개

채택된 답변
+20 포인트

안녕하세요.

아래처럼 변경해 보세요~

<?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>

답변에 대한 댓글 1개

위치만 변경해도 되는군요...ㅜ.ㅜ
초보의 헤맴은 도대체 어디까지 일지... 모르겠네요...
제이영님. 답변 감사드립니다. 덕분에 잘 해결됐습니다.
2021-04-26 (월) 21:43:01

if (!$is_admin)
  alert("관리자만 접근 가능한 페이지입니다", "/");

답변에 대한 댓글 1개

항상 친절한 답변 감사드립니다. 마르스컴퍼니님...
덕분에 잘 해결됐습니다.^^

답변을 작성하려면 로그인이 필요합니다.