Мне кажется, что стоит рассмотреть еще один вариант — троян + утечка пароля из базы запомненных паролей в браузере. Тот же хром хранит все запомненные пароли в SQLlite, и выцепить его оттуда по нужному адресу не составляет труда. Это может объяснять и то, почему забирали одноразовые ящики — я на таких всегда «запоминаю» пароль, потому что воспользуюсь им один раз и забуду.
Да пусть они живут у вас, эти строки. При публикации статьи-то их можно было удалить, ценности они не несут. Кто захочет отладочную информацию — поставит их сам.
А любой хороший админ, имхо, и так должен быть немножко кодером, капельку бухгалтером, хорошим эникеем и немножко волшебником.
Это сложно назвать простым кодом. Практически все тут направлено на нарушение принципа DRY.
Код
system ("chflags noschg $defhomedir/php-bin/$user/php");
system ("echo '#!/usr/local/php/55/bin/php-cgi' > $defhomedir/php-bin/$user/php");
system ("chflags schg $defhomedir/php-bin/$user/php");
system ("pkill -9 -u $user");
$newphpver1 = 5500;
повторяется во всех условиях. При этом отличие одного блока от другого только в пути и в переменной. Не проще было сделать switch/case с нужными версиями (или проверку версии в заранее заданном массиве) и объявить функцию change_version?
Что-то вроде:
switch ($newphpversion) {
case 5.4:
case 5.3:
...
change_version($newphpversion);
break;
default:
throw new Exception("Unknown version");
}
Код PHP, с перлом не знаком, но конструкция switch/case там точно есть.
Вместо этого вы даже поленились убрать закомментированный устаревший код.
Извините, но в приличном обществе за такой код бьют по рукам.
Да, вы написали:
По поводу модуля — можно много чего правильней написать, но делался он для того чтобы работать а не для красоты.
С другой стороны, этот код — почти половина статьи.
То есть, вы как бы говорите: у меня полстатьи не очень.
Если можно написать правильнее, то почему бы и не написать? Сами же потом разбираться в нем будете.
Я узнал, почему я жил в неведении. У меня просто нет этого кусочка border-bottom в хроме (в отличие от Firefox, про другие браузеры не знаю). Окей, я снова счастлив, все хорошо :)
Для ответов на эти вопросы были правила сайта — там все это было расписано. А можно поинтересоваться по поводу дальнейшних изменений? Если это не военная тайна, разумеется.
Лично я негодую, что это похож на всеми любимые посты из вк «привет, я маша, лайкни аву». Информативности ноль. Остается только надеяться, что анализ результатов действительно будет.
Тем более интересно, чему же учат на независимых курсах? Как было организовано обучение, какие группы, какова длительность обучения, какова квалификация тренера?
отведено ровно два не очень больших абзаца, причем, без какого-либо углубления в курс: что было, какие задания, почему этот курс нужен и важен. Остальная часть статьи — «смотрите, у нас есть 2 инженера с этими сертификатами, ура!»
D-Link вообще молодцы. Для DIR-300 и подобных давно существует способ посмотреть пароль в plaintext просто находясь с ними в одной сети: http://192.168.0.1/model/__show_info.php?REQUIRE_FILE=/var/etc/httpasswd
Что-то типа питоновского:
А любой хороший админ, имхо, и так должен быть немножко кодером, капельку бухгалтером, хорошим эникеем и немножко волшебником.
Код
повторяется во всех условиях. При этом отличие одного блока от другого только в пути и в переменной. Не проще было сделать switch/case с нужными версиями (или проверку версии в заранее заданном массиве) и объявить функцию change_version?
Что-то вроде:
Код PHP, с перлом не знаком, но конструкция switch/case там точно есть.
Вместо этого вы даже поленились убрать закомментированный устаревший код.
Да, вы написали:
С другой стороны, этот код — почти половина статьи.
То есть, вы как бы говорите: у меня полстатьи не очень.
Если можно написать правильнее, то почему бы и не написать? Сами же потом разбираться в нем будете.
отведено ровно два не очень больших абзаца, причем, без какого-либо углубления в курс: что было, какие задания, почему этот курс нужен и важен. Остальная часть статьи — «смотрите, у нас есть 2 инженера с этими сертификатами, ура!»
http://192.168.0.1/model/__show_info.php?REQUIRE_FILE=/var/etc/httpasswd