| |
|
|
| | После нескольких обменов баннеров=)) захотелось чтоб баннеры выводились рандомно на других сайтах:) Но если я дам какойнить ява скрипт или еще что-то в этом роде, ктонить может не согласиться... Воть и решил написать маленький скриптик=)) (с обманом:-))
<?php
$extension = ((!empty($_GET['extension'])) ? $_GET['extension'] : false);
$partner = ((!empty($_GET['partner'])) ? $_GET['partner'] : false);
if ($partner && $extension) {
if ($banner = rand_banner($partner, $extension)) {
header("HTTP/1.0 200 OK");
header("HTTP/1.1 200 OK");
header("Cache-Control: no-cache, must-revalidate, max-age=0");
header("Expires: 0");
header("Pragma: no-cache");
header("Content-type: ".image_type_to_mime_type($banner['extension']));
echo $banner['content'];
}
} else {
exit();
}
function rand_banner($banners_folder = false, $banners_extension = false) {
$allow_extension = array('gif', 'png', 'jpg', 'jpeg', 'bmp', 'swf');
if (in_array($banners_extension, $allow_extension)) {
if (file_exists($banners_folder) && $handle = opendir($banners_folder)) {
while (($file = readdir($handle)) !== false) {
if ($file != "." && $file != "..") {
if (is_file($banners_folder."/".$file) && preg_match("/\.(".preg_quote($banners_extension).")+$/i", $file)) {
$banners_array[] = $file;
}
}
}
closedir($handle);
if ($banners_array) {
for ($b = 0; $b <= count($banners_array); $b++) {
$set = array_rand($banners_array);
if (file_exists($banners_folder."/".$banners_array[$set])) {
$banner['content'] = file_get_contents($banners_folder."/".$banners_array[$set]);
$banner['extension'] = exif_imagetype($banners_folder."/".$banners_array[$set]);
return $banner;
break;
} else {
array_splice($banners_array, $set, 1);
continue;
}
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
}
?>
|
Вродеб работает норм (проблема не в этом)
Хотел спросить вожможно ли через этот скрипт чтонить натворить??? (грубо говоря взломать мой сайт) Привык защищаться от инекция и от всякоо таково, но здесь ведь все подругому=)
Жду вашего мнения!
З.Ы. Дабы совсем не пугать поставившего у себя этот баннер кодом в рисунке типа <img src="banners.php?partner=site&extension=gif"> :)
Использую реврайт: баннер вызываеться так
banner_site.gif
где site это название папки откуда беруться баннеры, gif ет пнятно че такое:) | |
| |
|
|
| |
|
|
| |
для: Poison
(19.01.2007 в 10:05)
| | | На счет инъекций, я так понимаю SQL инъекции, то нет потомучто я не вижу использования базы, а если межсайтовый скриптинг то вроде тоже все нормально, хотя советую входящие данные обрабатывать функцией htmlspecialchars() | |
| |
|
|
| |
|
|
| |
для: dert
(19.01.2007 в 10:18)
| | | << На счет инъекций, я так понимаю SQL инъекции, то нет потомучто я не вижу использования базы
Я про SQL и не говорил:))
>>хотя советую входящие данные обрабатывать функцией htmlspecialchars()
Можно поподробней:) Где здесь можно пробратся без htmlspecialchars() | |
| |
|
|
| |
|
|
| |
для: Poison
(19.01.2007 в 10:29)
| | | к примеру $_GET['partner'] | |
| |
|
|
| |
|
|
| |
для: dert
(19.01.2007 в 10:43)
| | | не ну вроде $_GET['partner'] нигде не выводится... | |
| |
|
|
| |
|
|
| |
для: malish
(19.01.2007 в 11:09)
| | | Немного оффтоп:))
Неразу не работал на *nix
В них так-же как и в винде нельзя испольовать в названиях файла или папки???
| |
| |
|
|
| |
|
|
| |
для: Poison
(19.01.2007 в 11:13)
| | | Допустимые имена файлов
В операционной системе UNIX правил использования имен файлов не так уж много. В новейших UNIX-системах имена файлов могут иметь любую длину и включать почти все символы, кроме косой черты, которая используется для разделения каталогов. Лучше, однако, ограничиться стройными и прописными буквами, цифрами, точками и запятыми. Пробелы и другие специальные символы требуют специальной обработки. Вместо того, чтобы объяснять, как это сделать, я советую Вам отказаться от их использования.
Не ставьте в начале имени файла точку; команда ls не найдет такой файл в списке, если Вы не укажете ее с ключом -а. Использование точки в качестве первого символа имени файла позволяет "прятать" определенные файлы, чтобы они не "загрязняли" списки каталогов. Однако если Вы новичок в UNIX, то эта особенность может ввести Вас в заблуждение.
http://www.linux.org.ru/books/wunix.html
Google рулит:) | |
| |
|
|
| |
|
|
| |
для: malish
(19.01.2007 в 11:19)
| | | Пнятно! Всетаки приписал еще такое:))
<?
$extension = ((!empty($_GET['extension'])) ? strip_tags($_GET['extension']) : false);
$partner = ((!empty($_GET['partner'])) ? strip_tags($_GET['partner']) : false);
if ($partner && $extension && !preg_match("/[\"\/\\\?:\*<>|]+/i", $partner) && !preg_match("/[\"\/\\\?:\*<>|]+/i", $extension)) {
?>
|
| |
| |
|
|