помогите с PHP

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
jeehadina
мл. сержант
Сообщения: 93
Зарегистрирован: 2008-04-07 8:59:20

Re: помогите с PHP

Непрочитанное сообщение jeehadina » 2008-04-21 12:01:31

zg, ты написал что в последнем скрипте radiofanat две уязвимости.
будь добр, укажи где.
спасибо.
я не баба, я - мужик...
(это чтоб никто не путал)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-21 12:09:13

zg писал(а): :roll: у меня нет, проблема в том что ты путаешь тёплое с мягким - вирусы явление массовое, персональный взлом явление единичное. Тебе как удобней чтоб тебя сломали, через дыру в бесплатном скрипте, бекдор и или через "добрый" совет на форуме? :roll:
песональный взлом, как я понимаю, это когда есть конкретный ресурс - blackbox, в котором надо найти уязвимость, найти способ ее эксплуатации и, только после этого, поиметь его. Я говорю про массовость - огромное кол-во как корпаративных, так и персональных ресурсов использует готовые OSS движки (как этот форум, phpBB, к примеру). [Кста, если не изменяет память в 2006 его компрометировали из за не вовремя обновленного движка]
Дык вот сплойты под эти движки можно найти даж на }{акер'е :D . И методики массового АВТОМАТИЗИРОВАННОГО взлома путем обработки результатов поиска в Google по определенным запросам и последующим массовым применением эксплойта тож есть в сети.
zg писал(а):
lexy писал(а):$content=join("\n",file("content/".sprintf("%08d",$id).".dat"));
:roll: я канешна тупой и нифига не умею, но есть такая функция как file_get_contents()
ну знаешь ты на одну функцию больше.... это тебя спасло? она делает что-то кардинально отличное от приведенного мною кода? 8)
zg писал(а):
lexy писал(а):if(!trim($content)){
$title=$head='Страница не найдена';
.....
$title=$head='Страница не найдена';
ну, не то что бы меня это смущало, скорее так и должно быть... :|
опечатка, палюсь :mrgreen: [ЗЫ, а никто и не говорил, что именно в приведенном виде это у меня работает, забыл стереть, сейчас, надеюсь, не напрягает? Причины, почему выдрал кусок кода из описания класса, надеюсь, понятны?]
zg писал(а): 2 radiofannat, в твоём скрипте уже на лицо 2 уязвимости, а когда ты закончишь делать скрипт, у тебя их будет в десятки раз больше. Не побрезгуй сходи на http://ru2.php.net/manual/ru/tutorial.firstpage.php , там много чего полезного есть
совет правильный, почитать как правильно и безопасно писать web-приложения радиофанату действительно необходимо. НО! Зная по себе, когда только начинаешь влезать в эту тему - хочется получить мгновенный и эффектный результат, почувствовать себя Властелином Колец в своем virtualhost'e. Все с этого начинали. А про уязвимости - да есть, но только условно (в секции

Код: Выделить всё

...............
всякий код...
пофиг какой...
Это еще anySQL просто нету. :D

2 radiofannat: не сцать! в этом деле главное не сцать и курить маны (штакет за штакетом) :mrgreen:

2 zg: хорош может уже пикировать друг друга? вижу, ты такой же упертый как и не я :lol:

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-21 12:28:46

lexy писал(а):2 zg: хорош может уже пикировать друг друга? вижу, ты такой же упертый как и не я :lol:
не ты это кто? да и не я первый начал :roll:... но можно и закончить :mrgreen: для всех это будет лучше :)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-21 12:33:25

lexy писал(а):А про уязвимости - да есть, но только условно (в секции

Код: Выделить всё

...............
всякий код...
пофиг какой...
Это еще anySQL просто нету. :D
при register_globals on инетерсный результат будет по ссылке файл.php?incsearch=1&name=Hello, а если учесть, что Hello можно заменить на любой html, то угроза XSS налицо, если конечно на сайте будут куки :roll:

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-21 13:07:42

Код: Выделить всё

<?
$web = $_GET['123'];
if ($web=="search")
{
$incsearch=1;
$name = "поиск"; //ето нужно БЫЛО добавить на верх!!!!
}
...............
всякий код...
пофиг какой...

?>
<HTML>
<HEAD>
<TITLE><? echo "$name ?></TITLE>
...............
<?
if($incsearch==1)
{
include 'search.php';
}
?>
исходя из того, что используется $_GET тогда register_globals off ( тем более в треде обсуждалось что его надо выключить) - это уязвимость раз.
И то! переменная name инициализуется, и переменная incsearch - тоже, вероятность -> к нулю.
-2. Расскажи ка поподробней, каким боком здесь XSS?- сорри был неправ ))))

а где вторая уязвимость?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-21 13:30:37

lexy писал(а):исходя из того, что используется $_GET тогда register_globals off ( тем более в треде обсуждалось что его надо выключить) - это уязвимость раз.
И то! переменная name инициализуется, и переменная incsearch - тоже, вероятность -> к нулю.
про регистр глобалс, долго плакал... Регистр глобалс - настройка в пхп.ини, и никаким боком не связана с $_GET, кстати пример как узнать включена она или нет, есть прямо в мануале http://ru2.php.net/manual/ru/function.ini-get.php . Глобальные массивы _GET, _POST и т.д. ввели с определённой версии пхп, по-моему с 4. Нельзя утверждать, что регистр глобалс не включены, только потому, что используется _GET массив. С уверенностью можно утверждать, что регистр глобалс выключены, только с 6 пхп, там эту настройку просто ликвидируют. Во всех остальных версиях пхп нужно проверять, включена она или нет, но большество хостеров её включают, так как многие скрипты всё ещё её используют.
lexy писал(а):2. Расскажи ка поподробней, каким боком здесь XSS?
внедрение javascript-кода через урл даёт возможность переслать куки на любой сайт-снифер, тут это можно сделать через переменную $name
lexy писал(а):а где вторая уязвимость?
использование необъявленной переменной $incsearch, при том, что сравнение идёт небезопасное, это вторая уязвимость

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-21 13:51:59

ок! ну завязали уже :D
про register_globals писал же в контексте треда не раз предлагалось выключить, ссылки правильные на ман, но мне уже не нужны ))))))

$incsearch в контексте приведенного кода безопасна

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-21 14:10:55

lexy писал(а):ок! ну завязали уже :D
не принимай к сердцу, просто слезу прошибло
lexy писал(а):про register_globals писал же в контексте треда не раз предлагалось выключить, ссылки правильные на ман, но мне уже не нужны ))))))
а это не столько тебе, сколько мне. Я ошибаюсь так часто, что приходится проверять и проверять.
lexy писал(а):$incsearch в контексте приведенного кода безопасна
неа не безопасное

вот пример безопасного использования

Код: Выделить всё

<?
// Заранее исзвестный список разделов
$razdely = array
(
  'site' => 'Сайт',
  'search' => 'Поиск',
);

// Раздел, который будет являтся разделом по-умолчанию
$defaultModule = 'site';

// Проверяем, есть ли в GET ссылка на страницу
$fromGet = isset($_GET['page']) ? $_GET['page'] : null;

// Если есть, И ЭТА СТРАНИЦА ЕСТЬ В РАЗДЕЛАХ
if ( $fromGet && isset($razdely[ $fromGet ]) )
{
  // получаем эту страницу
  $moduleId = $fromGet;
}
else
{
  // иначе присваеваем модуль по-умолчанию
  $moduleId = $defaultModule;
}

// выбираем имя модуля, которо однозначно объявлено в разделах сайта
$moduleName = $razdely[ $moduleId ];

?>
<html>

<title><?=$moduleName?></title>

<body>
<?
if ( !@include($moduleId .'.php') )
{
  echo 'Файл раздела не удалось подключить.... :(';
}
?>
</body>

смотри код, делай выводы, найдёшь отличия - молодец :)

ЗЫ в коде возможны опечатки, так как код не проверялся...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-21 14:52:14

дык это совсем другая техника )))))
но я бы еще инкапсулировал в классы, чтоб с global scope вообще не пересекаться (как ты меня и запалил в одном из кусков кода :) )
lexy писал(а):
$incsearch в контексте приведенного кода безопасна
неа не безопасное
с suhosin - вполне

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-21 15:18:28

lexy писал(а):дык это совсем другая техника )))))
но я бы еще инкапсулировал в классы, чтоб с global scope вообще не пересекаться (как ты меня и запалил в одном из кусков кода :) )
если руки кривые, то не надо использовать классы, имхо. Чтобы уметь проектировать классы, надо сначало потренироваться в C++, написать пару-тройку скриптов на классах, а только потом придёт понимание механизма ООП. Вопрос на засыпку - знаешь чем отличается php4 от php5? и C от C++? 8) если на вскидку сказать не сможешь, то мой тебе совет http://php.net и
http://www.zend.com/en/services/certification/
lexy писал(а):
lexy писал(а):
$incsearch в контексте приведенного кода безопасна
неа не безопасное
с suhosin - вполне
http://www.hardened-php.net/suhosin/how ... grade.html ухты шняга какая :mrgreen:! затык от криворукости, токо я её впервые вижу, не думаю, что это сильно популярная штука среди хостеров. Если в скрипте есть уязвимость, то его можно сломать, методов много, хоть с патчем, хоть без патча

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-21 15:51:37

НУ и флейм! заткните нас уже кто нить!
:mrgreen: про suhosin:
если не в курсе, из портов во фряхе он ставится автоматом с установкой PHP


про твои высказывания про классы, различия php4 и 5 и С++ я тебе уже высказал, за что и был награжден предупреждением от модератора.
если ты в инсте прошел курс по ООП, поочитал цитируемые ресурсы и т.п. но не знаешь толком собеседника, его знаний и квалификации не стоит высказываться оскорбительно, ИМХО это моветон. Сам то ZCE имеешь? ссылочку на профайл в Zend's Yellow Pages можно?

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение kmb » 2008-04-21 15:58:08

а что этот патч делает? сухокин всмысле...
truth is out there...

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение kmb » 2008-04-21 16:01:22

а так да... ставиться видимо автоматом:
If you are running Gentoo Linux or FreeBSD Suhosin is already within your ports system.
truth is out there...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-21 16:15:17

kmb писал(а):а что этот патч делает? сухокин всмысле...
вкратце - здесь http://forum.antichat.ru/showpost.php?p ... ostcount=4
первоисточник тута http://www.suhosin.org/
Последний раз редактировалось lexy 2008-04-22 7:16:13, всего редактировалось 1 раз.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-21 16:32:14

lexy писал(а):Сам то ZCE имеешь? ссылочку на профайл в Zend's Yellow Pages можно?
http://www.zend.com/store/education/cer ... =220260157 чего и тебе желаю

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение Alex Keda » 2008-04-21 23:28:44

назначить чтоли обоих модераторами в этот форум...
чтоб как у нас с райвеном - ареа51 за три часа раз шесть переименовывалась =)))
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-22 4:39:16

lissyara писал(а):назначить чтоли обоих модераторами в этот форум...
лучше только его, мне модераторство даром не надо

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-22 7:18:40

zg писал(а):
lexy писал(а):Сам то ZCE имеешь? ссылочку на профайл в Zend's Yellow Pages можно?
http://www.zend.com/store/education/cer ... =220260157 чего и тебе желаю
чего и требовалось доказать. Старина Фрейд был прав :mrgreen: Только это не дает тебе право обвинять в криворукости других :evil:

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-22 9:24:45

lexy писал(а):чего и требовалось доказать. Старина Фрейд был прав :mrgreen: Только это не дает тебе право обвинять в криворукости других :evil:
:lol: дак а я чё... я ж ничё :roll: , это ж ты злишься, да ещё и фрейда накой-то приплёл :roll:

Кстати, молодые люди, которые увлекаются чтением и цитированием фрейда, как правило, имеют большие комплексы по поводу одного места :roll:

Вместо того, чтобы мне тут чё-то доказывать лучше пройди сертификацию, много нового и полезного узнаешь :wink:

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-22 9:53:11

мля! да заткните вы уже нас!!!!! :mrgreen:
на основании чего ты сделал вывод о моем возрасте? :?

я злюсь не на твои знания и профессионализм, т.к. не имею о них ни малейшего представления, (обрывки кода не в счет), а о твоей манере подачи информации в стиле боянистого анекдота, про графа Монте-Кристо и всех остальных :lol: что и подтверждают (субъективно И для меня) прочитанные мной твои посты на этом форуме.

ЗЫ Вот и помогли с PHP :roll:

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-22 10:11:15

lexy писал(а): что и подтверждают (субъективно И для меня) прочитанные мной твои посты на этом форуме
я тебя люблю, ты такой милый 8)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-22 10:24:29

jeehadina писал(а):zg, ты написал что в последнем скрипте radiofanat две уязвимости.
будь добр, укажи где.
спасибо.

Код: Выделить всё

<?
// Разбор граблей

// 1. Ты жёстко привязываешься к массиву _GET, но не проверяешь, а установлена ли эта переменная.
$web = $_GET['123'];

// Надо всегда делать проверку и присваевать дефолтное значение
$web = isset($_GET['123']) ? $_GET['123'] : null;

/* 2. Ты используешь нестрогое равенство, допускающее приведение типов, однако заведемо знаешь, что тут будет использоваться только тип "строка", поэтому нужно использовать строгое равестно ===, иначе будут проблемы, если web будет содержать целочисленное значение */
if ($web=="search")
{
$incsearch=1;
$name = "поиск"; //ето нужно БЫЛО добавить на верх!!!!
}

// 3. А если $web не равно search, то что будет в name и incsearch? ....

...............
всякий код...
пофиг какой...

?>
<HTML>
<HEAD>
<TITLE><? echo "$name ?></TITLE>
...............
<?
// 4. Опять нестрогое равенство, да ещё использование переменной, которая не была однозначно объявлена
if($incsearch==1)
{
include 'search.php';
}

// В пхп есть тип boolean, который отличается от всех остальных типов, лучше использовать его, а не int, если значения только 0 и 1

?>

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение Alex Keda » 2008-04-22 12:09:30

вы бы лучше оба проставили день рождения в профиле - тогда бы не возникало наездов на возраст.
или они обоснованные бы были...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-22 12:34:43

в профайле моей аськи все есть :)
Ищущий да обряще

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-22 13:00:05

lissyara писал(а):вы бы лучше оба проставили день рождения в профиле - тогда бы не возникало наездов на возраст
да ну ))) тогда не интересно будет, а так интрига :roll: