|
|
|
|
|
для: mistersmak
(15.10.2005 в 22:02)
| | Проверка $_FILES['file']['size']>307200 вас вряд ли спасёт - лучше проверьте нельзя ли при помощи этого скрипта загрузить на сервер PHP-скрипт, если можно (а судя по всему так и есть), злоумышленику даже не понадобится ваш пароль, он и так всё через эту дыру сломает и утащит. | |
|
|
|
|
|
|
|
для: cheops
(15.10.2005 в 03:34)
| | Чего, Хакеры своих секретов не раскрывают? | |
|
|
|
|
|
|
|
для: cheops
(15.10.2005 в 03:34)
| | И новый вопрос:
Меня один такой же ламер как я, запугал, мол если злобный зверек хакер чего-то там ломать, он могут тыбрить логин\пароль от сайт. Моя бояться! предложил мне вот ЭТО:
<?
if (isset($action))
{
if ($action == "upload")
{
if ($error == "yes")
{
echo "Проблема при посылке заявки:";
switch($reason)
{
case 'size' : echo "Размер файла больше 300 Кб или равен нулю."; break;
case 'null' : echo "Вы не ввели название файла."; break;
case 'copy' : echo "Не удалось послать заявку (проблемы на сервере)."; break;
default : echo "Не надо умничать"; break;
}
}
echo "<form method=POST action=\"form.php\" enctype=\"multipart/form-data\">";
echo "Список:";
echo "<td width=230><input type=file name=file></td>";
echo "<td><input type=submit name=upload value=\"Послать\"></td></tr></tbody></table></form>";
}
}
elseif ($upload == "Послать")
{
if (strlen($_FILES['file']['name']) == "0")
{
echo "<meta http-equiv=\"refresh\" content=\"0;url=form.php?action=upload&error=yes&reason=null\">";
exit;
}
elseif (($_FILES['file']['size']>307200) || ($_FILES['file']['size'] == "0"))
{
echo "<meta http-equiv=\"refresh\" content=\"0;url=form.php?action=upload&error=yes&reason=size\">";
exit;
}
$copy = @copy($_FILES['file']['tmp_name'],"/www/wl/htdocs/files/form/".$_FILES['file']['name']);
if (!@$copy)
{
echo "<meta http-equiv=\"refresh\" content=\"0;url=form.php?action=upload&error=yes&reason=copy\">";
exit;
}
echo "<table bgcolor=\"#EAEAEA\" cellspacing=1 cellpadding=4 width=\"90%\" align=center style=\"border:1px solid #6C93EC\"><tbody>";
echo "<tr><td><u>Список успешно послан</u>";
echo "</td></tr></tbody></table><br>";
echo "<meta http-equiv=\"refresh\" content=\"3;url=form.php\">";
}
else
{}
?>
|
Конечно ограничение в 300Кб не тру, но вот злобный хакер совсем не тру!
Говорит, спрашивал на Софттайме. Врет, паскуда? | |
|
|
|
|
|
|
|
для: cheops
(15.10.2005 в 03:34)
| | Вот так загружает файл, правда ошибка все равно осталась (?)
<?
$host = "*";
$user = "****";
$pass = "********";
$conn_time = set_time_limit(180);
$connect = ftp_connect($host);
if(!$connect) { echo "Ламерские происки! Нет соединения!<br>"; }
$regi = ftp_login($connect, $user, $pass);
if(!$regi) { echo "Ламерские происки! Пароль/логин неверен!<br>"; }
//$urlfile=fopen("qwert.txt", 'r');
$urlfile="qwert.txt";
$download = ftp_put($connect, $urlfile, $localfile, $type);
if(!$download)
{
echo "Ламерские происки! Не грузит!<br>";
}
fclose($urlfile);
?>
|
Теперь осталось научить скрипт определять где тут имя файла.
(что если файл называется "1.rar.arhiv" или лежит в папке "site.files"(1 вариант просто ноебходим)) | |
|
|
|
|
|
|
|
для: cheops
(15.10.2005 в 03:34)
| | Все равно, пишет тоже самое. :(
Ошибка в строке
$download = ftp_fput($connect, $urlfile, $localfile, $type);
|
| |
|
|
|
|
|
|
|
для: mistersmak
(15.10.2005 в 01:42)
| | ftp_fput() хочет не имя файла "qwert.txt", а дескриптор открытого при помощи fopen() файла, т.е. пример можно переписать примерно следующим образом
<?
$host = "*";
$user = "****";
$pass = "********";
$conn_time = set_time_limit(180);
$connect = ftp_connect($host);
if(!$connect) { echo "Ламерские происки! Нет соединения!<br>"; }
$regi = ftp_login($connect, $user, $pass);
if(!$regi) { echo "Ламерские происки! Пароль/логин неверен!<br>"; }
$urlfile=fopen("qwert.txt", 'r');
$download = ftp_fput($connect, $urlfile, $localfile, $type);
if(!$download)
{
echo "Ламерские происки! Не грузит!<br>";
}
fclose($urlfile);
?>
|
Или вместо ftp_fput() испльзуйте ftp_put() - она как раз имя файла принимает. | |
|
|
|
|
|
|
|
для: Евгений Петров
(14.10.2005 в 21:32)
| | Лучше весь файл:
<?
$host = "*";
$user = "****";
$pass = "********";
$conn_time = set_time_limit(180);
$connect = ftp_connect($host);
if(!$connect) { echo "Ламерские происки! Нет соединения!<br>"; }
$regi = ftp_login($connect, $user, $pass);
if(!$regi) { echo "Ламерские происки! Пароль/логин неверен!<br>"; }
$urlfile="qwert.txt";
$download = ftp_fput($connect, $urlfile, $localfile, $type);
if(!$download)
{
echo "Ламерские происки! Не грузит!<br>";
}
?>
|
Он немного изменен, но ошибка осталась. :(
$localfile и $type приходит из прошлой формы (input type=file name=localfile и $type- тип FTP_ASCII или FTP_BINARY) | |
|
|
|
|
|
|
|
для: mistersmak
(14.10.2005 в 21:05)
| | Файл-заголовок не валидный. Приведите строку 13 файла addfile.php | |
|
|
|
|
|
|
| Что значит: Warning: Supplied argument is not a valid File-Handle resource in ...addfile.php on line 13 | |
|
|
|
|