[관리자님]오전에 언급한 거 관련해서 > 자유게시판

자유게시판

[관리자님]오전에 언급한 거 관련해서 정보

[관리자님]오전에 언급한 거 관련해서

본문

코멘트로 남기겠습니다.
추천
0
  • 복사

댓글 12개

cheditor5/imageUpload/upload.php 를 아래와 같이 수정하고

//$random_name = random_generator() . $ext;
$random_name = abs(ip2long($_SERVER['REMOTE_ADDR'])) . '_' . random_generator() . $ext;




cheditor5/imageUpload/delete.php 를

<?php
require_once("_config.php");
// ---------------------------------------------------------------------------

$delete = trim($_GET['img']);

// 파일의 경로에서 파일명만 얻어낸다. \ 나 / 는 제거된다.
preg_match('/[0-9a-z_]+\.(gif|png|jpe?g)$/i', $delete, $m);
$delete = $m[0];

// 파일의 아이피 부분만 잘라내서 자신의 아이피인지 비교한다.
list($ip2long, $filename) = explode('_', $delete);
if ($ip2long != abs(ip2long($_SERVER['REMOTE_ADDR']))) die(false);   

$filepath = sprintf("%s/%s", SAVE_DIR, $delete);

$r = unlink($filepath);

echo $r ? true : false;
?>

이렇게 수정해 보았습니다.


확인이 가능하신지요?
답변이 늦었습니다. 이건 어떤가요?


require_once("_config.php");

$delete = basename(trim($_GET['img']));

if (preg_match('/^[0-9a-z_]+\.(gif|png|jpe?g|tiff?|bmp)$/i', $delete, $dump)) {

// 파일의 아이피 부분만 잘라내서 자신의 아이피인지 비교한다.
list($ip2long, $filename) = explode('_', $delete);
if ($ip2long != abs(ip2long($_SERVER['REMOTE_ADDR']))) die(false);   

$filepath = sprintf("%s/%s", SAVE_DIR, $delete);

$r = unlink($filepath);

echo $r ? true : false;
}
else echo false;


그런데 이것의 문제는 사용자가 항상 아이피가 같을 가능성이 많지 않다는 겁니다.
어차피 삭제는 이미지를 올리는 경우에만 가능합니다.
아이피가 다를 이유가 없습니다.
tiff 는 모르겠는데 bmp 는 용량이 큰 관계로 빼는것이 좋을것 같습니다.
CHEDITOR 에서도 gif, png, jpe?g 만 가능합니다.
아이피를 파일 이름에 사용하는 건 위험하지 않을까 싶습니다. 파일 올린 사람의 아이피를 공개하는 것과 같으니까요... 굳이 사용해야 한다면 적어도 md5로 바꾸어주어야 하지 않을까요? 하지만 이것도 완벽한 것은 아닙니다. 테이블을 만들면가능합니다. ^^/
© SIRSOFT
현재 페이지 제일 처음으로