Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: скрипт открывает, но не сохраняет текст, помогите разобраться
 
 автор: newcold   (09.02.2008 в 17:22)   письмо автору
 
 

Скрипт работает правильно, вот только не сохраняет изменения в файле...

<?php
// Файл edit.php
// Если передано исправленное содержимое файла
// открываем файл и перезаписываем его
if(isset($_POST['content']))
{
// Открываем файл
$fd = @fopen($_POST['filename'], "w");
// Если файл не может быть открыт - сообщаем
// об этом предупреждением в окне браузера
if(!$fd) exit("Такой файл отсутствует");
// Перезаписываем содержимое файла
fwrite($fd, stripslashes($_POST['content']));
// Закрываем файл
fclose($fd);
// Помещаем в суперглобальный массив $_GET
// имя файла
$_GET['filename'] = $_POST['filename'];
}
?>
<form name=first method="get">
Имя файла <input type="text" name="filename"
value=<?php echo $_GET['filename']; ?>><br>
<input type="submit" value="Отправить">
</form>
<?php
// Если в строке запроса передано имя
// файла - открываем его для редактирования
if(isset($_GET['filename']))
{
// Открываем файл
$fd = @fopen($_GET['filename'], "r");
// Если файл не может быть открыт - сообщаем
// об этом предупреждением в окне браузера
if(!$fd) exit("Такой файл отсутствует");
// Помещаем содержимое файла в переменную $bufer
$bufer = fread($fd, filesize($_GET['filename']));
// Закрываем файл
fclose($fd);
?>
<form name=second method="post">
<textarea cols=76 rows=10 name="content">
<?php echo $bufer; ?></textarea><br>
<input type="hidden" name=filename
value='<?php echo $_GET['filename']; ?>'>
<input type="submit" name=edit value="Редактировать">
</form>
<?php
}
?>

   
 
 автор: exp   (09.02.2008 в 19:24)   письмо автору
 
   для: newcold   (09.02.2008 в 17:22)
 

опасный какой-то скрипт
а если пользователь наберёт адрес http://этотСкрипт?filename=crack.php
и запишет туда что-нибудь злое ?

а так наверное ничего не записывается потому-что не стоит chmod 777
и если файл отсутствует fopen('...', 'w');его создаёт. опять-же если выставлено право на запись в папку
наверное правильнее проверять с помощью is_exist или is_writable

   
 
 автор: newcold   (10.02.2008 в 12:33)   письмо автору
 
   для: exp   (09.02.2008 в 19:24)
 

Спасибо за совет... буду смотреть. Скрипт будет доступен только из админ панели, так что только админ сможет им пользоваться...

   
 
 автор: bronenos   (10.02.2008 в 13:41)   письмо автору
 
   для: newcold   (10.02.2008 в 12:33)
 

Воспользоваться сможет каждый, а найти - только админ

   
 
 автор: Trianon   (10.02.2008 в 15:29)   письмо автору
 
   для: bronenos   (10.02.2008 в 13:41)
 

В яблочко! :)

   
 
 автор: newcold   (10.02.2008 в 17:26)   письмо автору
 
   для: Trianon   (10.02.2008 в 15:29)
 

как защитить??? там ещё будет скрипт в начале и в конце страницы, который проверяет совершон ли вход в админ панель или нет, если нет, то доступ закрыт... или нет???

   
 
 автор: Max Vasin   (10.02.2008 в 17:45)   письмо автору
 
   для: exp   (09.02.2008 в 19:24)
 

вопрос по поводу безопасности))
если у меня такие адреса
http://test.test/book.php?r=lib&p=php&pp=&namebook=23&partbook=contents
http://test.test/book.php?r=lib&p=php&pp=&namebook=23&partbook=pred
т.е. то что в partbook потом инклудом вставляется в страницу, в нужной папке находятся файлы с форматом тхт - contents.тхт, pred.тхт.
это тоже получается небезопасно?

----
Regards, Max Vasin.

   
 
 автор: bronenos   (10.02.2008 в 18:02)   письмо автору
 
   для: Max Vasin   (10.02.2008 в 17:45)
 

&partbook=../admin.php#

   
 
 автор: Max Vasin   (10.02.2008 в 18:19)   письмо автору
 
   для: bronenos   (10.02.2008 в 18:02)
 

Т.е. ты хочешь сказать что не безопасно?
Дело в том, что я предварительно проверяю находится ли такой файл в папке, а затем если он существует, то тогда срабатывает include_once
Или все-таки отказаться от такой реализации?
Тогда как?

----
Regards, Max Vasin.

   
 
 автор: bronenos   (10.02.2008 в 19:57)   письмо автору
 
   для: Max Vasin   (10.02.2008 в 18:19)
 

../admin.php тоже может существовать в папке.... уровнем так выше...

   
 
 автор: Max Vasin   (10.02.2008 в 20:46)   письмо автору
 
   для: bronenos   (10.02.2008 в 19:57)
 

:))
ну, так у меня же идет проверка существования, к примеру, contens.txt, а не contens.php.
все-равно уязвимо?

----
Regards, Max Vasin.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования