묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
파일처리에 대한 질문입니다.
2003.02.05 09:21
무단링크를 못하도록 좀 생각을 해봤습니다. 첨엔 쿠키를 이용했었는데 쿠키를 허용하지 않은 사용자의 경우 문제가 생겼었습니다. 그래서 파일을 하나 생성해서 체크하는 방법을 이용했습니다. 전체적인 경로는 이렇습니다. 1번문서에서 사용자 접속 아이피를 기반으로 임의의 파일을 생성한 후 2번문서로 이동하고 2번문서에서는 1번문서에서 생성된 파일이 존재하는지 확인하고 존재하지 않으면 에러메세지를 출력하고 종료시키며, 파일이 존재하면 파일을 삭제하고 내용을 보여주도록 했습니다.
1번문서
<?
$file = fopen("data/$REMOTE_ADDR.cgi", "w");
fwrite($file, "");
fclose($file);
?>
2번문서
<?
if ( !file_exists( "data/$REMOTE_ADDR.cgi" ) )
{
echo "Access Deny";
exit;
}
if ( !unlink( "data/$REMOTE_ADDR.cgi" ) )
{
echo "처리과정에서 에러가 발생했습니다.";
exit;
}
?>
ok!
data폴더는 퍼미션을 777로 지정했는데 생성되는 파일은 퍼미션이 644로 되네요..
이 경우 삭제시 퍼미션 관련 문제발생의 소지가 없을까요?
또 이러한 방법을 사용했을때 문제의 소지는 없는지 알고싶습니다.
답변 부탁드립니다.
1번문서
<?
$file = fopen("data/$REMOTE_ADDR.cgi", "w");
fwrite($file, "");
fclose($file);
?>
2번문서
<?
if ( !file_exists( "data/$REMOTE_ADDR.cgi" ) )
{
echo "Access Deny";
exit;
}
if ( !unlink( "data/$REMOTE_ADDR.cgi" ) )
{
echo "처리과정에서 에러가 발생했습니다.";
exit;
}
?>
ok!
data폴더는 퍼미션을 777로 지정했는데 생성되는 파일은 퍼미션이 644로 되네요..
이 경우 삭제시 퍼미션 관련 문제발생의 소지가 없을까요?
또 이러한 방법을 사용했을때 문제의 소지는 없는지 알고싶습니다.
답변 부탁드립니다.
2. 저 시스템은 나중에 가면 수백개의 파일이 쌓이겠죠-ㅅ-;;;;
$HTTP_REFERER를 체크하는 방법이 가장 간단하고 좋습니다.