|
|
|
|
|
для: Kirill
(25.08.2004 в 15:27)
| | Теперь можно почитать в статье по ссылке :) В ней далеко не всё, но публикации будут продолжаться.
http://www.softtime.ru/info/articlephp.php?id_article=25 | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(25.08.2004 в 14:53)
| | Спсибо разобрался...
Не подскажите где можно прочитать про .htaccess ? | |
|
|
|
|
|
|
|
для: Kirill
(25.08.2004 в 14:07)
| | >А как ограничить доступ к папке files.
Чтобы из браузера нельзя было получить доступ к этой папке
в нее нужно поместить файл .htaccess с опцией:
.... Ну можно еще прямо в файле get.php проверять из какого скрипта произошел вызов и тогда разрешать или запрешать выполнение.
>+ При выполнении следующей функции браузер предлагает сохранить фаил с названием "get"
В смысле? Сохраняет все файлы под именем get? Странно... У меня сохраняет нормально - под именем файла. | |
|
|
|
|
|
|
|
для: cheops
(25.08.2004 в 12:29)
| | Продолжая развивать тему безопастности, связанную с возможностью пользователей сохранять свои файлы на сервере,
Хочется спросить: А как ограничить доступ к папке
files. Т.е. разрешить доступ к ней только через функцию get.
А то. ведь можно на прямую выполнить файлик с враждебным скриптом, подсунутый через атачь.
+ При выполнении следующей функции браузер предлагает сохранить фаил с названием "get"
Ссылка следующая:
http://localhost/CTS/get.php?filename=files/9-20040825140334[.php].att
<?php
$file_name = $_GET['filename'];
$fd = fopen($file_name, "r");
if (!$fd)
{
header ("HTTP/1.0 403 Forbidden");
exit;
}
$content = fread($fd, filesize($file_name));
fclose($fd);
$query = "SELECT file FROM posts WHERE file = '".$file_name."';";
$files = mysql_query($query);
if($files)
{
$file = mysql_fetch_array($files);
if($file['file'] == "")
{
header ("HTTP/1.0 403 Forbidden");
exit;
}
}
else
PutError("Error");
header("Content-Disposition: attachment; filename=".$file_name);
header("Content-type: application/octet-stream");
print $content;
exit;
?>
|
| |
|
|
|
|
|
|
|
для: Kirill
(25.08.2004 в 11:27)
| | Всё зависит от количества файлов, если у вас их немного, то можно просто в файле get.php явно его каждый раз конструировать:
<?php
$names[] = "archive.zip"
$names[] = "index.html"
.........................................
$names[] = "poll.php"
?>
|
Можно так же хранить имена в файле и каждый раз читать его и преобразовывать в массив
<?php
$file = fopen("auth", "r");
$buffer = fread($file, filesize("auth"));
fclose($file);
// Разбиваем строку на имена файлов,
// которые помещаем в массив $names
$names = explode("\r\n",$buffer)
?>
|
PS Странно, зашёл в поиск скопировал в строку запроса ваше имя: на этом форуме вы инициировали 7 тем:
mail() Под WIndows
Работа с файлами
Работа с временем
Шифрование
MySQL количество баз данных.
__clone()
Call to undefined function mcrypt_create_iv())
Сообщения оставлены вами в 11 темах.
http://www.softtime.ru/dic/id_dic=21&id_group=1 | |
|
|
|
|
|
|
|
для: cheops
(25.08.2004 в 11:18)
| | Может быть вы объясните мне как создать такой "долго живущий массив". Чтобы не выбирать каждый раз и БД имена всех файлов, а заносить их в него сразу при загрузке.
ЗЫ
Я так и не нашел возможности поиска по имени создателя темы. | |
|
|
|
|
|
|
|
для: Kirill
(25.08.2004 в 11:06)
| | Лучше даже не функцией, а отдельным файлом:
<?php
// Это файл get.php
$filename = $_GET['filename'];
$fd = fopen($filename, "r");
if (!$fd){
header ("HTTP/1.0 403 Forbidden");
exit;
}
$content = fread($fd, filesize($filename));
fclose($fd);
header("Content-Disposition: attachment; filename=$filename");
header("Content-type: application/octet-stream");
print $content;
exit;
?>
|
Тогда загрузка файла будет осуществляться при обращении по ссылке get.php?filename=index.php. Только, следует проверять, что посетители тащат с вашего сайта, иначе, воспользовавшись таким скриптом, они все коды сайта упрут, подставляя соответствующие названия в URL. Обычно заводят массив в котором регистрируют имя файла, предназначенного для загрузки, и перед передачей файла - проверяют, входит ли его имя в этот массив. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(25.08.2004 в 00:26)
| | А как его использовать?
У меня есть ссылка на фаил...
Надо весь этот скрипт функцией сделать и передавать ей имя при клике на ссылку? | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(25.08.2004 в 00:26)
| | Хм... классно, а я как раз поток и не пробовал :) Нужно будет FTP-менеджер поправить... | |
|
|
|
|
|
|
|
для: Kirill
(24.08.2004 в 23:47)
| | А она имеется... как в поиске по сообщениям, так и в поиске по темам... | |
|
|
|
|