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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> список распространенных дыр в php скриптах 
:(
    Опции темы
Sniper
Дата 28.2.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



хотелось бы чтобы здешние виртуозы PHP написали распространенные дыры, и исправленные варианты.

Некий такой справочник, чтоли, чтоб новички (к которым я себя и причисляю) могли научиться писать без явных дыр.

p.s без sql иньекций и прочего, так как это подробно описано везде.


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
gta4kv
Дата 28.2.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



PM MAIL   Вверх
pizzz
Дата 28.2.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Чтобы писать без дыр, надо всегда проверять то что приходит от пользователя. во вторых, 
Код

$f=@fopen("asd.dc", "w");
fputs($f, $str);
fclose($f);


Это не правильно. Надо проверить а открылся ли фаил. Например так:

Код

if ($f=@fopen("asd.dc", "w")) {
fputs($f, $str);
fclose($f);
} else {
// фаил не открылся.
}

--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
nerezus
Дата 28.2.2009, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Не нужно ничего такого читать.

Только документацию по используемым методам.
И знать, что КОНКРЕТНО происходит при любом твоем действии.

На примере SQL-inj: они происходят, когда человек, используя потенциально уязвимую библиотеку для запросов пренебрегает правилами ее использования.
Решение: либо использовать так, как написано в мануале, либо выбрать библиотеку, которая не позволит сделать SQL-inj(мэппинг до объектов, например).


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


Эксперт
***


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

Репутация: 21
Всего: 31



Ну на мой взгляд дыра только одна. Доверие переданым от пользователя данным. 
Всё остальное не дыры, а невнимательность и непонимание происходящего.
PM MAIL WWW ICQ Skype   Вверх
bars80080
Дата 28.2.2009, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(pizzz @  28.2.2009,  12:05 Найти цитируемый пост)
$f=@fopen("asd.dc", "w")

а наличие собаки - это правильно?
PM MAIL WWW   Вверх
awers
Дата 28.2.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 21
Всего: 31



bars80080, да ладно тебе ) Это всего лишь намордник что бы пхп не гавкал  smile 
А вообще да конечно. Муветон он и в африке муветон
PM MAIL WWW ICQ Skype   Вверх
unicross
Дата 28.2.2009, 19:11 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 21
Всего: 53



Цитата(bars80080 @  28.2.2009,  17:05 Найти цитируемый пост)
а наличие собаки - это правильно?

Код

$f=fopen("asd.dc", "r");

Код

Warning: fopen(asd.dc) [function.fopen]: failed to open stream: No such file or directory in C:\Apache\htdocs\test.php on line 2

bars80080, Вы эту надпись не считаете дырой в безопасности????
Наличие собаки плохо на этапе разработки. smile 
При отсутствии на этапе работы - это дыра в безопасности...
Если конечно в начале скрипта не стоят строки:
Код

ini_set('display_errors', 'Off');
ini_set('error_log', 'err.txt');
ini_set('log_errors', 'On');

А в .htaccess
Код

<Files *.txt>
   Deny from all
</Files>


Это сообщение отредактировал(а) unicross - 28.2.2009, 19:14
PM MAIL WWW   Вверх
skyboy
Дата 28.2.2009, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(unicross @  28.2.2009,  18:11 Найти цитируемый пост)
Если конечно в начале скрипта не стоят строки:

errorlog обычно кладут за пределами document_root.
корректная конфигурация production-сервера не будет выводить ошибки клиенту.
нет, не-скрытие ошибок не "дыра". "дырявой" в данной ситуации может быть конфигурация php.
PM MAIL   Вверх
bars80080
Дата 28.2.2009, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(unicross @  28.2.2009,  18:11 Найти цитируемый пост)
Вы эту надпись не считаете дырой в безопасности????

для локальных файлов, вообще-то предусмотрена такая функция, как file_exists(). она и на директории распространяется
PM MAIL WWW   Вверх
gta4kv
Дата 28.2.2009, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата

При отсутствии на этапе работы - это дыра в безопасности...

А при этапе работы display_errors всегда должен быть off.
PM MAIL   Вверх
unicross
Дата 28.2.2009, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 21
Всего: 53



bars80080, я от вас ждал более мудрого ответа. Такого же мудрого как дали skyboy и gta4kv. А знаю... Вы не захотели повторяться... smile 

Применение функции file_exists() при модификаторе "w" в fopen() лишено смысла, а при "r" могут возникнуть ошибки и при существовании файла, например, нет прав доступа или файл блокирует другая программа длительное время... Что касается примера pizzz, то применение собаки может быть оправдано, так как в блоке else мы и так знаем, что произошла ошибка и можем ее обработать. Нет смысла выводить ошибку в errorlog, а тем более в браузер. В остальных случаях я против собаки... Я за display_errors=Off при работе...

Цитата(skyboy @  28.2.2009,  19:20 Найти цитируемый пост)
корректная конфигурация production-сервера не будет выводить ошибки клиенту.
нет, не-скрытие ошибок не "дыра". "дырявой" в данной ситуации может быть конфигурация php.

Цитата(gta4kv)

А при этапе работы display_errors всегда должен быть off.

В том, то и проблема что конфигурация не всегда настроена правильно. Вывод ошибок в браузер вижу почти на каждом третьем сайте.
Как говорится "На других надейся, а сам не плошай"!

Цитата(skyboy @  28.2.2009,  19:20 Найти цитируемый пост)
errorlog обычно кладут за пределами document_root.

Да согласен, но если в скрипте есть конструкция include($_GET['file']), то это не поможет... smile 

PM MAIL WWW   Вверх
awers
Дата 28.2.2009, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 21
Всего: 31



Цитата(unicross @  28.2.2009,  23:30 Найти цитируемый пост)
Применение функции file_exists() при модификаторе "w" в fopen() лишено смысла,

А если нет прав записи в директорию


Цитата(unicross @  28.2.2009,  23:30 Найти цитируемый пост)
а при "r" могут возникнуть ошибки и при существовании файла, например, нет прав доступа или файл блокирует другая программа длительное время...

is_writable есть и is_readable на такие случаи
PM MAIL WWW ICQ Skype   Вверх
unicross
Дата 1.3.2009, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 21
Всего: 53



Цитата(awers @  28.2.2009,  23:48 Найти цитируемый пост)
А если нет прав записи в директорию

С какой версии PHP функция file_exists() начала проверять права доступа?

PM MAIL WWW   Вверх
bars80080
Дата 1.3.2009, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(unicross @  28.2.2009,  21:30 Найти цитируемый пост)
Применение функции file_exists() при модификаторе "w" в fopen() лишено смысла, а при "r" могут возникнуть ошибки и при существовании файла, например, нет прав доступа или файл блокирует другая программа длительное время...

и это объясняет закрытие собакой функцию? а остальные функции?
может всё-таки разом отключать все ошибки на показ?
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0755 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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