¿ÜºÎ À̹ÌÁö ¸µÅ©¸¦ ¸·Àº »çÀÌÆ®ÀÇ °æ¿ì, ´ëºÎºÐ Á¢¼ÓÀÚÀÇ Referer¸¦ Á¶»çÇÏ¿© µ¿ÀÏ »çÀÌÆ®°¡ ¾Æ´Ñ °÷¿¡¼ Á¢¼ÓÇϸé À̸¦ Â÷´ÜÇϰųª ¸µÅ©±ÝÁö ¾È³»¹® À̹ÌÁö·Î µ¹¸®°Ô µÈ´Ù.
µû¶ó¼, À̹ÌÁö¸¦ ¿äûÇÒ ¶§ header¿¡ Referer¸¦ ÇØ´ç »çÀÌÆ® ÁÖ¼Ò·Î ³ÖÀ¸¸é ¹®Á¦ ¾øÀÌ ÀÐ¾î ¿Ã ¼ö ÀÖ´Ù.
CURLÀ» »ç¿ëÇÑ ¿¹Á¦
## get_image.php ##########
<?
if($_GET[p]) {
$tUrl = $_GET[p]; //°¡Á®¿Ã À̹ÌÁöÀÇ ÁÖ¼Ò
$rUrl = $_GET[r]; //Referer
$path_parts = pathinfo($tUrl);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $tUrl);
curl_setopt($ch, CURLOPT_REFERER, $rUrl);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30) '); //ºê¶ó¿ìÀú Á¾·ù - Explorer 7.0
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$f = curl_exec($ch);
curl_close($ch);
$len = strlen($f);
header("Content-type: image/jpeg"); //.jpg ¸¸ Áö¿ø.. gif, png µîÀº $tUrlÀ» ÆĽÌÇÏ¿© ÀûÀýÈ÷ Á¶Ä¡ÇÏ¸é µÊ..
header("Content-Disposition: attachment; filename=".$path_parts['basename']); //¿ìŬ¸¯À¸·Î ÀúÀåÇÒ ¶§ bmp ·Î ÀúÀåµÇ´Â ¹®Á¦ ÇØ°á
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$len);
echo ($f);
}
?>
### »ç¿ë ¿¹Á¦ #########
<img src="get_img.php?p=http://some.where/img/some.jpg&r=http://some.where">