Re[11]: Этот ваш PHP ****
От: Sheridan Россия  
Дата: 18.03.10 16:04
Оценка:
Приветствую, kochetkov.vladimir, вы писали:

k> k>> А еще я понял, почему он всех призывает тотально изучать администрирование. Он даже в разработке использует те технологии, в которых, не обладая навыками админа, можно отхватить такие грабли, что поневоле админить начинаешь

k> S>Это которые? Просто интересно.
k> Там в сообщении аж два смайлика на этот счет стоит (третий).

Ну я придерживаючь правила "в каждой шутке есть доля шутки..."
Итак, что тебя заставило так сказать?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[12]: Этот ваш PHP ****
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 18.03.10 16:24
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Ну я придерживаючь правила "в каждой шутке есть доля шутки..."

S>Итак, что тебя заставило так сказать?

Это были размышления вслух о причинах существования твоего мнении о том, что программеры должны владеть навыками администрирования. Как одна из возможных причин, предподнесенная в виде не очень удачной шутки.
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Этот ваш PHP ****
От: Sheridan Россия  
Дата: 18.03.10 20:44
Оценка: :)
Приветствую, LaptevVV, вы писали:

LVV> Одной звездочки в названии явно не хватает!

LVV> php ***!
LVV> php ****!!
LVV> php ***** !!!
LVV>

За маты тут банят, а у тебя так в каждом предложении
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[7]: Этот ваш PHP ****
От: Sheridan Россия  
Дата: 18.03.10 20:44
Оценка:
Приветствую, kochetkov.vladimir, вы писали:

k> Не, это уже пройденный этап. Недавно случилось страшное и Шеридана потянуло в веб-технологии. Теперь он всем объясняет
Автор: Sheridan
Дата: 13.03.10
какими должны быть веб-стандарты


Не, это я стараюсь не терять навыки, да и заодно набросал себе хранилище для флеш-игрушек
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[8]: Этот ваш PHP ****
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 18.03.10 22:27
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Не, это я стараюсь не терять навыки, да и заодно набросал себе хранилище для флеш-игрушек


Угу. Тебе уязвимости (XSS, доступ к исходникам скриптов, возможно LFI, возможно HTTP Response splitting) — сюда кидать или в личку?
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[9]: Этот ваш PHP ****
От: Sheridan Россия  
Дата: 18.03.10 22:28
Оценка:
Приветствую, kochetkov.vladimir, вы писали:

k> Угу. Тебе уязвимости (XSS, доступ к исходникам скриптов, возможно LFI, возможно HTTP Response splitting) — сюда кидать или в личку?


Я в курсе, ибо никаких защит не делал
Давай сюда, и я поумнею, и другим интересно будет.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[9]: Этот ваш PHP ****
От: Anton Batenev Россия https://github.com/abbat
Дата: 18.03.10 22:48
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

k> Угу. Тебе уязвимости (XSS, доступ к исходникам скриптов, возможно LFI, возможно HTTP Response splitting) — сюда кидать или в личку?


Чем прогоняешь?
avalon 1.0rc3 rev 317, zlib 1.2.3
Re[10]: Этот ваш PHP ****
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 18.03.10 23:46
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, kochetkov.vladimir, Вы писали:


k>> Угу. Тебе уязвимости (XSS, доступ к исходникам скриптов, возможно LFI, возможно HTTP Response splitting) — сюда кидать или в личку?


AB>Чем прогоняешь?


Когда вот так вот — навскидку, то руками. Ну + FF, обвязанный правильными расширениями (не сканерами). Когда по серьезному, то руками + основные юзкейсы сайта через ratproxy + с оглядкой на фон, где accunetix сканит на предмет xss, а xspider на все остальное. Последний — только если на работе и наши собственные сайты ибо ограничение лицензии.

Это если мы говорим исключительно о веб-приложениях и их пентестах.
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[10]: Этот ваш PHP ****
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 18.03.10 23:46
Оценка: 5 (2)
Здравствуйте, Sheridan, Вы писали:

S>Приветствую, kochetkov.vladimir, вы писали:


k>> Угу. Тебе уязвимости (XSS, доступ к исходникам скриптов, возможно LFI, возможно HTTP Response splitting) — сюда кидать или в личку?


S>Я в курсе, ибо никаких защит не делал

S>Давай сюда, и я поумнею, и другим интересно будет.

Ну, как знаешь...

XSS — на самом деле, можно взять любой параметр GET-запроса, который попадает на выход

Доступ к исходникам — нужно либо делать все, что содержит код, с расширением .php, либо запрещать доступ к этим файлам или размещать их выше корня хоста.

Расщепление HTTP-заголовка — появится, как только отключишь warning'и. Из варнингов также понятно, что id передается в file_get_contents file_put_contents проходя только экранирование magic_quotes'ами (либо чем-то аналогичным). Только благодаря тому, что там к этой строке еще добавляется '/names' у тебя сейчас нет LFI (local file include) и доступа к произвольному файлу ФС с правами веб-сервера.

Еще обратил внимание (но не проверял) на недостаточный контроль данных из кук (style). Скорее всего, там тот же самый набор уязвимостей.
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[11]: Этот ваш PHP ****
От: Sheridan Россия  
Дата: 19.03.10 00:19
Оценка:
Приветствую, kochetkov.vladimir, вы писали:

k> XSS — на самом деле, можно взять любой параметр GET-запроса, который попадает на выход

fixed

k> Доступ к исходникам — нужно либо делать все, что содержит код, с расширением .php, либо запрещать доступ к этим файлам или размещать их выше корня хоста.

fixed

k> Расщепление HTTP-заголовка — появится, как только отключишь warning'и. Из варнингов также понятно, что id передается в file_get_contents file_put_contents проходя только экранирование magic_quotes'ами (либо чем-то аналогичным). Только благодаря тому, что там к этой строке еще добавляется '/names' у тебя сейчас нет LFI (local file include) и доступа к произвольному файлу ФС с правами веб-сервера.

походу тоже fixed

k> Еще обратил внимание (но не проверял) на недостаточный контроль данных из кук (style). Скорее всего, там тот же самый набор уязвимостей.

Жду
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[11]: Этот ваш PHP ****
От: Sheridan Россия  
Дата: 19.03.10 00:35
Оценка:
Приветствую, kochetkov.vladimir, вы писали:

k> Из варнингов также понятно, что id передается в file_get_contents file_put_contents проходя только экранирование magic_quotes'ами (либо чем-то аналогичным).

0_0 — это директория 0 с поддиректорией 0, 0_12 соответственно o/12/
list($a,$b) = split('/_/', $id);
$dir = "$server_root/games/a/b/";
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[2]: Этот ваш PHP ****
От: IT Россия linq2db.com
Дата: 19.03.10 00:55
Оценка: +1
Здравствуйте, elmal, Вы писали:

E>Ну дык это ... хочешь в языках с динамической типизацией уверенности что все хорошо — пиши тесты со 100 процентным покрытием .


Чем в данном случае помогло бы 100%-е покрытие?
Если нам не помогут, то мы тоже никого не пощадим.
Re[11]: Этот ваш PHP ****
От: Anton Batenev Россия https://github.com/abbat
Дата: 19.03.10 01:24
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

k> Когда вот так вот — навскидку, то руками. Ну + FF, обвязанный правильными расширениями (не сканерами).


И что, на такой простой странице можно было допустить столько ошибок? Или они лишь потенциальные и реально ими воспользоваться еще очень постараться придется?
avalon 1.0rc3 rev 318, zlib 1.2.3
Re[12]: Этот ваш PHP ****
От: Anton Batenev Россия https://github.com/abbat
Дата: 19.03.10 01:28
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB> И что, на такой простой странице можно было допустить столько ошибок? Или они лишь потенциальные и реально ими воспользоваться еще очень постараться придется?


У... вижу. Мне бы такого security officer на opensvn...
avalon 1.0rc3 rev 318, zlib 1.2.3
Re[12]: Этот ваш PHP ****
От: Трурль  
Дата: 19.03.10 06:17
Оценка:
Здравствуйте, Sheridan, Вы писали:

k>> Доступ к исходникам — нужно либо делать все, что содержит код, с расширением .php, либо запрещать доступ к этим файлам или размещать их выше корня хоста.

S>fixed
А как же опенсорс?
Re[12]: Этот ваш PHP ****
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 19.03.10 08:21
Оценка:
Здравствуйте, Sheridan, Вы писали:

k>> Еще обратил внимание (но не проверял) на недостаточный контроль данных из кук (style). Скорее всего, там тот же самый набор уязвимостей.

S>Жду

Вечером гляну.
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[13]: Этот ваш PHP ****
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 19.03.10 08:21
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, Anton Batenev, Вы писали:


AB>> И что, на такой простой странице можно было допустить столько ошибок? Или они лишь потенциальные и реально ими воспользоваться еще очень постараться придется?


AB>У... вижу. Мне бы такого security officer на opensvn...


Для Avalon'а? Так я его и так тестировать буду (security@rsdn чуть подзабросил из-за нехватки времени, каюсь. Но планирую вернутся к нему в апреле, если что). Или ты про другие проекты? Пиши в личку или сюда, если что — не вижу причин не помочь, по мере возможности, интересному открытому проекту
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: Этот ваш PHP ****
От: Calc Россия  
Дата: 19.03.10 08:29
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

<?php
header("Content-Type: text/html; charset=utf-8");
ini_set('display_errors',1);
ini_set('register_globals','Off');

$variable1 = variable2;
$variable3 = $variable1;
$variable3 += 10;
echo variable1."\n\r".$variable2."\n\r".$variable3;
?>

Профессионалы, **** вашу мать...
и .htaccess
php_flag register_globals off

Там же ставьте всё....

Notice: Use of undefined constant variable2 - assumed 'variable2' in D:\work\EasyPHP5.3.0\www\monopoly\www.php on line 8

Notice: Use of undefined constant variable1 - assumed 'variable1' in D:\work\EasyPHP5.3.0\www\monopoly\www.php on line 11

Notice: Undefined variable: variable2 in D:\work\EasyPHP5.3.0\www\monopoly\www.php on line 11
variable1 10



И читайте доки. PHP устойчив к "идиотским ошибкам", идиотские ошибки в нем не рушат работу всей системы
А вот правильность и чистота написания кода зависит от вас + пользуйтесь проверкой синтаксиса, например NetBeans выдаст предупреждение о том, что переменная не инициализирована.

Поддержка таких Notice очень полезна для работы группы разных разработчиков за маленькие деньги. Если разные модули пишут разные люди, то выход из строя одного модуля не рушит всю систему целиком. Не нужно тратить время на написание обработки ошибок.
Re[2]: Этот ваш PHP ****
От: Calc Россия  
Дата: 19.03.10 08:32
Оценка:
Здравствуйте, Calc, Вы писали:

C>Здравствуйте, kochetkov.vladimir, Вы писали:


и не забудьте xdebug поставить на сервер. Не будете делать таких глупых ошибок.
Re[11]: Этот ваш PHP ****
От: Calc Россия  
Дата: 19.03.10 08:44
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, neFormal, Вы писали:


F>> AB>Если код предполагается под нагрузку, то будет тормозить.

F>> сильно?.

AB>Преждевременная оптимизация зло — что-то я "в пылу сражения" ляпнул не подумав.


AB>Я так понимаю, что ты пытаешься сделать некоторое подобие ORM и дальше начнешь генерить в рантайме SQL запросы? Вот в этом месте я бы написал пару-тройку тестов на производительность — PHP с MySQL требует некоторой осторожности. А так, если просто reflection и ничего с ним не делать, то он достаточно быстр — т.е. вызов функции дешев.


на обычном железе арифметические операции, операции поиска в тексте, конкатенция и т.д. занимает 0.00x секунд на всю страницу при работе с mysql 0.0x если есть сортировка и временные таблицы, так же нужно учесть количество записей и бредовость запросов

Пример с одного сайта. Там косяк с индексами, но не хватает квалификации для их перепеси.
Порт с loomilы, которая дохла после 1000 записей в основной базе и работала дольше 30 секунд.
Сейчас там явно больше 12000 фильмов, я не говорю о количестве записей в таблице и о том, что машина на Linuxe уже 3 раза умерала (железо) + 1 раз был уронен блок питания на процессор Сейчас стоит на каком то страшном железе где порядка 30 сайтов + система диагностики сети (база более 300Гб уже, логи).
Время выполнения: 1.8658950328827 секунд (25 запросов, 1.8423883914948 сек)
select count(*) from jos_jmovies where published=1; (0.0031259059906006) sec
select c.id,c.title,c.alias from jos_categories as c, jos_jmovies_categories as mc where mc.catid=c.id and c.section='com_jmovies' and c.published=1 group by c.id order by c.title; (0.011789083480835) sec
select m.id,m.titolo as name, CONCAT(SUBSTR(m.descrizione,1,200),'...') as descr, m.urlweblocal, m.video, m.urltrailer as dcurl, m.urlweb from jos_jmovies as m where published=1 order by rand() limit 1; (0.39255499839783) sec
select m.id,m.titolo as name,m.titolo2 as name_e, CONCAT(SUBSTR(m.descrizione,1,300),'...') as descr, m.nazione as country, m.regista as rejisser, m.anno as year, m.filename, m.video, m.audio, m.urlweblocal, m.counter, m.votes, m.votesum, m.attorealtri as actors, m.published, m.urltrailer as dcurl, m.urlweb as ftpurl from jos_jmovies as m left join jos_jmovies_categories as mc on m.id=mc.jmoviesid where (m.published=1) and publish_up<=NOW() group by m.id order by m.publish_up desc limit 0,20; (0.72129893302917) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43661; (0.67020106315613) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43677; (0.00031805038452148) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43676; (0.0002589225769043) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=1344; (0.00026106834411621) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=41597; (0.00028705596923828) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43334; (0.00028800964355469) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43258; (0.00029087066650391) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43225; (0.00026798248291016) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43335; (0.0003058910369873) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43675; (0.00027894973754883) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43674; (0.00027298927307129) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43673; (0.00026297569274902) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43672; (0.00031495094299316) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43671; (0.00027894973754883) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43670; (0.0003058910369873) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43669; (0.00028014183044434) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43594; (0.00026988983154297) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43606; (0.00025391578674316) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43668; (0.00027799606323242) sec
select DISTINCT(c.title) from jos_jmovies_categories as mc, jos_categories as c where c.id=mc.catid and mc.jmoviesid=43349; (0.00025486946105957) sec
select count(*) from jos_jmovies as m left join jos_jmovies_categories as mc on m.id=mc.jmoviesid where m.published=1 group by m.id; (0.038089036941528) sec
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.