Oleg (8 Июня 2012 / 12:50)
Через BB код изображение тогда тоже можно взломать?
Легко.
<?
function img_replaces($m) {
$m = str_replace("http://","",$m);
$file = 'http://' . $m['1'] . '';
$size = getimagesize ("$file");
$ext = strtolower(substr($file, 1 + strrpos($file, ".")));
$ext2 = array("gif", "jpg", "png", "jpeg");
if (in_array($ext, $ext2)) {
if ($size['0'] > '100' || $size['1'] > '100'){
echo '<br><img src="http://' . $m['1'] . '" width="100" height="100" alt="' . $m['2'] . '"><br>';
}else{
echo '<br><img src="http://' . $m['1'] . '" alt="' . $m['2'] . '"><br>';
}
echo '<a href="http://' . $m['1'] . '">Скачать</a> ['.$size['0'].'x'.$size['1'].']<br>';
}else{
echo '' . $file . '';
}
}
1. Как мы видим, размер картинки проверяется, но не с целью обезопасить, а с целью красиво вывести на экран.
2. Вес картинки не проверяется совсем.
3. Наличие файла не проверяется совсем.
4. Проверяется только расширение, но его легко подделать.
5. Да и вообще тут подход крайне неверный. Если картинок на странице много, это нагрузит сервер. Грубо говоря, ему надо будет открыть и произвести все вышеперечисленные мной действия. А если страницу смотрит много людей - Error 504 обеспечено.
Резюме: Криво, косо, дыряво. Написано 90-летним индусом.