Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сайт, советы по безопастности и улучшению 
:(
    Опции темы
Redstuff
Дата 30.7.2006, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Не могли бы просмотреть код сраниц, и ответить:
1. Есть ли "дыры" в безопастности.
2. Что можно изменить в лучшую сторону.

mail.php
Код

<?php
$subject="Тема";
$body="Âàø å-ìåéë: ".@strip_tags($_POST['email'])."\n Òåêñò îòðêûòêè: ".@strip_tags($_POST['text'])."\n Ïîäïèñü: ".@strip_tags($_POST['signature'])."\n Àðòèêóë: ".@strip_tags($_POST['articul'])."\n \nÊîìó: \n ÔÈÎ: ".@strip_tags($_POST['fio'])."\n \nÊóäà: \n Ñòðàíà: ".@strip_tags($_POST['country'])."\n Èíäåêñ ïîëó÷àòåëÿ: ".@strip_tags($_POST['index'])."\n Îáëàñòü: ".@strip_tags($_POST['region'])."\n Ãîðîä: ".@strip_tags($_POST['city'])."\n Óëèöà, äîì, êâàðòèðà: ".@strip_tags($_POST['address']);
$headers="Çäðàñòâóéòå";
$emails=array("[email protected]","[email protected]","[email protected]");
if(@$_POST['send']) {
  foreach($emails as $value)
    mail($value, $subject, $body, $headers) or die("Error: couldn't send e-mail");
}
?>


index.php (шаблон для всех страниц)
Код

------
<tr>
<td><a class="mainlevel" href="index.php?content=send">Îòïðàâèòü</a></td>
</tr>
------
<tr>
        <td width="528">
        <?php
          if (file_exists(@$_GET['content'].".php")) {
            include ($_GET['content'].".php");
            echo $text;}
          else echo "dfkljf";
        ?></td>
</tr>
------


image.php (функция для вывода картинок)
Код

<?php
$get_str = $_SERVER['PHP_SELF'].'?';
foreach ($_GET as $field => $value) {
  $get_str .= $field.'='.$value.'&';
}
$dir=getcwd ()."/$path/";
  $dh  = opendir($dir);
  $files = array();
  while (false !== ($filename = readdir($dh))) {
    $a=basename($filename);
    if($a=='.' or $a=='..') {
      continue;
    }
    $files[] = $a;
  }
  $rows = 3;
  $cols = 5;
  $on_page = $rows*$cols;

  $_GET['page'] = (is_numeric(@$_GET['page']) and @$_GET['page']>0)?$_GET['page']:1;
  $page_count = ceil(count($files)/$on_page);
  print '<table cellspacing="4" cellpadding="4" border="0" align="center">';
  for ($i=0;$i<$rows;$i++) {
    if (empty($files[$i*$cols])) break;
    print '<tr>';
    for ($j=0;$j<$cols;$j++) {
      print '<td>' ;
      if (!empty($files[$i*$cols+$j+($_GET['page']-1)*$on_page])) {
      $art=str_replace(".jpg", "", $files[$i*$cols+$j+($_GET['page']-1)*$on_page]);
        print "<a href=\"full$path\\".$files[$i*$cols+$j+($_GET['page']-1)*$on_page]."\" target=\"_blank\"><img border=\"0\" src='$path/".$files[$i*$cols+$j+($_GET['page']-1)*$on_page]."'></a><br>$art";
      }
      print '</td>';
    }
    print '</tr>';
  }
  print '</table>';

  print '<br><center>Ñòðàíèöà: | ';
  for($p=1;$p<=$page_count;$p++) {
    if ($_GET['page']==$p) {
      print "<span style='color:grey'>".$p."</span> | ";
    } else {
      print "<a href='".$get_str."page=".$p."'>".$p."</a> | ";
    }
  }
  print '</center><br>';
?>


fsend.php (форма отправки)
Код

-----
<tr>
        <td width="180" align="right" bgcolor='.$colorn.'>Âàø å-ìåéë:</td>
        <td width="300" bgcolor='.$color.'><form name="FormName" action="mail.php" method="post"><input type="text" name="email" size="39"></td>
</tr>
------


Остальные файлы:
a1.php
Код

-------
<td><a href="index.php?content=newyear"><img src="dir/1.jpg" alt="Ìåæäóíàðîäíûé æåíñêèé äåíü. 8 ìàðòà" width="100" height="66" border="0"><br>Ñ Íîâûì Ãîäîì</a></td>
--------      

b1.php
Код

<?
$path="dir";
include "image.php";
$text="";
include "fsend.php";
?>


На этих файлах сделан полностью сайт. 


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 30.7.2006, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



1. Да.
2. Все. 
PM ICQ   Вверх
Redstuff
Дата 30.7.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Mal Hack , а нельзя ли эти самые места показать?
А то такие ответы мне ничем не помогут  smile  


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
jzZ
Дата 30.7.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 17.7.2006

Репутация: 1
Всего: 2



Полностью перепродумай структуру.
Код

------
<tr>
<td><a class="mainlevel" href="index.php?content=send">Îòïðàâèòü</a></td>
</tr>
------
<tr>
        <td width="528">
        <?php
          if (file_exists(@$_GET['content'].".php")) {
            include ($_GET['content'].".php");
            echo $text;}
          else echo "dfkljf";
        ?></td>
</tr>
------
 

Это сообщение отредактировал(а) jzZ - 30.7.2006, 17:37
PM MAIL   Вверх
Mal Hack
Дата 30.7.2006, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Redstuff @  30.7.2006,  15:10 Найти цитируемый пост)
$dir=getcwd ()."/$path/";

Это безопасность.
Что касается оптимизации, то не обижайся, но код некудышный, наляпан кое-как. Никакого проектирования нет.. 
PM ICQ   Вверх
Redstuff
Дата 30.7.2006, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Цитата(Mal Hack @ 30.7.2006,  18:21)
Цитата(Redstuff @  30.7.2006,  15:10 Найти цитируемый пост)
$dir=getcwd ()."/$path/";

Это безопасность.

А как надо исправить, чтобы было все ок?

Цитата

Что касается оптимизации, то не обижайся, но код некудышный, наляпан кое-как. Никакого проектирования нет..

1. мы все-таки в разделе PHP для начинающих )
2. я начал изучение недавно
Ну какие могут быть обиды, у каждого свои недостатки. 


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 30.7.2006, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Redstuff @  30.7.2006,  20:40 Найти цитируемый пост)
А как надо исправить, чтобы было все ок?

Тут на форуме есть статья по безопасности. Там ищи про include-bug. Найдешь, поймешьв чем суть, исправишь.
Непоймешь, скажешь, объясним.
Причем, как я сейчас глянул, эта ошибка у тебя внескольких местах.


Цитата(Redstuff @  30.7.2006,  20:40 Найти цитируемый пост)
1. мы все-таки в разделе PHP для начинающих )

В нашем FAQ есть моя статья "Учимся писать PHP скрипты правильно". Прочитай ее, сделай выводы, подправь код, запости, посмотрим снова.
Тонкости сразу не придут. Будешь потихоньку осваивать. 
PM ICQ   Вверх
nerezus
Дата 30.7.2006, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

$dir=getcwd ()."/$path/";
Это безопасность.
 
Тему не читал, но строка бросилась в глаза.
Если $path не фильтруется и вводится пользователем, то это дыра. Локальный инклюд.
Если на сайт можно заливать аватары, к примеру, например есть форум, то это уже глобальная php-inj ) 


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Redstuff
Дата 31.7.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Mal Hack , чото я не могу найти статью по безопастности ( 


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
AztEK
Дата 31.7.2006, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 6
Всего: 18





--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Redstuff
Дата 31.7.2006, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Подправил:
Код

<?
        $pages=array("index", "send", "cards");
        if (isset($_GET['content']) && in_array($_GET['content'],$pages)) {
          include($_GET['content'].".php");
          echo $text;
        }
        else echo "text";
?>
 
 

Это сообщение отредактировал(а) Redstuff - 31.7.2006, 18:53


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 31.7.2006, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Уже лучше. Суть уловил, это главное... 
PM ICQ   Вверх
Redstuff
Дата 31.7.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Цитата(Mal Hack @ 30.7.2006,  18:21)
Цитата(Redstuff @  30.7.2006,  15:10 Найти цитируемый пост)
$dir=getcwd ()."/$path/";


А что сдесь не так?

$path находится в подключаемых файлах
Код

<?
$path="picture";
include "image.php";
include "fsend.php";
?>


Загружать пользователю ничего нельзя, пользователю токо можно слать с формы сообщения мне на мыло и все.  

Это сообщение отредактировал(а) Redstuff - 31.7.2006, 19:44


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
GiV
Дата 31.7.2006, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 13.7.2006
Где: rus|53

Репутация: 4
Всего: 9



Цитата(Redstuff @  31.7.2006,  19:41 Найти цитируемый пост)
А что сдесь не так?

Ну как минимум при настройке PHP с register_globals ON
Вызов напрямую скрипта image.php?path=./././  даст нам много интересных вещей, а не только директорию dir указанную в скрипте обертке. 
PM MAIL WWW ICQ   Вверх
Redstuff
Дата 31.7.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Может поможете советом? 


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0703 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.