1. Куча / Говнокод #22034

    −100

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Знаменитый курсоклепатель-прогромист Русаков, обитатель динамической питушатни, АКА "презираю готовые движки", АКА "программированием увлёкся ещё в 10-ом классе. Начинал с Turbo Pascal, который пошёл у меня настолько успешно, что окружающие были очень удивлены, и я понял, что программирование - это моё призвание!"
    Глагне обители курсо-тренингов, что-то пошло не так:
    
    Notice: Array to string conversion in /home/myrusakov.ru/www/core/abstractobjectdb_class.php on line 345
    Warning: mysqli::real_escape_string() expects parameter 1 to be string, array given in /home/myrusakov.ru/www/core/abstractdatabase_class.php on line 29
    
    P.S. "Движок. Делается он на PHP и MySQL. И вот это самая сложная часть, и тут однозначно недостаточно знаний по PHP. К счастью, я разработал свой собственный способ создания движков."
    P.P.S. да, я хакир, детка.

    Запостил: CPAHA9I_CCAHIHA, 25 Января 2017

    Комментарии (81) RSS

    • totally path disclosured
      http://image.prntscr.com/image/212d0f68a3774dfa8328e46d9ab9f4a4.png
      PycaKoB, gotow' svoj anus!
      Ответить
      • У тебя просто короткий запрос, вот ты и завидуешь.
        Ответить
        • зато у меня keep-alive, могу хоть по полчаса
          Ответить
        • а что на это скажешь, сченок?
          http://image.prntscr.com/image/b560e67928b2484b840d8b460b5837ca.png
          Ответить
          • скажу что убунту на сервере это странно
            Ответить
            • Он что по-твоему, должен был пердолиться в консолечке, маны читать?
              Настраивать мышкой гораздо удобнее, даже если забыл какие-то опции, просто по табам щелкаешь и находишь за 5 минут. Ну и пасьянс разложить, если надоело админить сервер.
              Ответить
              • Один мой знакомый говорил: "а что сложного в адимнстве? Изучил все галочки винды и всё"
                Ответить
            • > убунту на сервере это странно

              Что в этом странного? Это же не обязательно десктопная Ubuntu.
              Ответить
              • Я в курсе что есть убунту сервер, но ни разу не видел что бы кто то его юзал в продакшене

                БОльшая часть известных мне серверов или центос (редхат) или дебиан
                Ответить
            • В хуяндексе и википедии убунта.
              Ответить
              • Не дебиан разве в яндексе?
                Ответить
                • Нет, в картах точно Ubuntu Server повсеместно.
                  Ответить
                  • а с чем связано?
                    требовались какие-то супер свежие либы из реп (хз даже что предположить, по трансформации координат или по обработке изображений)?
                    Ответить
                    • > а с чем связано?
                      Честно говоря, без понятия. Врядли дело в конкретных либах. Там полно умельцев, чтобы написать всё своё. Скорее всего, выбрали то, что тогда наиболее удобно/стабильно было. Проект-то довольно старый. Перед уходом я участвовал в эпичной миграции Ubuntu 10.04 -> Ubuntu 14.04
                      Ответить
                  • Вероятно у меня произошла аберрация сознания: мой знакомый яндексоид рассказывал как собирает .debы из своих тулов для установки на сервера, и я почему-то решил что речь о дебиане, а не об убунте.

                    Я еще тогда позавидовал ему, потому что в компании где я работал софт доставлялся системой из говна, палочек, перла и баша.
                    Ответить
                    • > софт доставлялся системой из говна, палочек, перла и баша

                      Хм, debuild вполне вписывается в это определение
                      Ответить
                      • как минимум у деба есть Debconf
                        а у нас были "installation instructions" для админов;)
                        Ответить
                • Я слышал только про убунту и редхат (именно рхел).
                  Ответить
                  • хм
                    рхел же платный, не (ну для корпораций всмысле)?
                    Ответить
                    • ну он тащемта не очень дорогой, если сравнить с ценой на виндосервер или тем более ценой на оракл/мсскл/проч СПО

                      + при использовании в виде кучи виртуалок надо обычно заплатить за нормальную лицензию за 1 хост (там по паре сокетов она множится)

                      получаешь как бы саппорт от вендора, ну и как бы более оттестированные пакеты, чем в центосине

                      ну и опять же там есть какой-то более родной прокси-репозиторий, чтобы только из него обновления засылать по своему ЦОДу и прочие плюхи
                      Ответить
                      • >> ну и как бы более оттестированные пакеты, чем в центосине
                        разве центосевые репы собираются не из тех же source packages что и RH?

                        Насколько я понимаю смысл RHEL именно в поддержке. Я купил себе Оракл за много денег и мне гарантируют его работу на RedHat версии Foo.

                        Если я вижу фразу "core dumped" то я могу требовать чтобы мне всё починили тут же, а случае CentOS не могу.

                        Очевидно что Яндекс это не так компания где такое нужно.
                        Ответить
                        • Смысл может быть еще в лицензировании, для оказания банковских услуг, например. Если у тебя продакшон на дистрибутиве от васяна, который не имеет нужных сертификатов в рашке, то можно не получить лицензию наверное. Я просто рассуждаю. Так-то не знаю ничего про эту бюрократическую тему.
                          Ответить
                          • ну так то Яндекс Деньги
                            Это отдельная планета вообще от больщого яндекса
                            Ответить
                          • ну рхел, откровенно говоря, хуевато лицензи сертифицирован, если ты про это

                            да, они после долгих лет стараний умудрились таки получить сертификат ФСТЭК по самому лоховскому классу (и по хуй знает каким ТУ, никто ж не публикует), аналогичному серверной винде, но по-хорошему если ты собрался аттестовывать свою банковскую систему, хранящую персональные данные миллиона человек, тебе надо совсем другими способами её огораживать - сертификата рхела не хватит, не тот класс
                            Ответить
                    • Ну да, платный. Это было не массовое явление. Какое-то одно подразделение покупало вроде, не помню какое.
                      Ответить
                      • Одно могло, да. Инсайт: в яше в одном отделе даже юзают дорогой продукт майкрософт, потому что он правда идеально подходит
                        Ответить
    • https://myrusakov.ru/search.html?query=%5C%5C%2F

      Warning: preg_replace(): Unknown modifier '/' in /home/myrusakov.ru/www/modules/searchresult_class.php on line 107
      Ответить
      • https://myrusakov.ru/search.html?query=%2F%5C%5C

        Warning: preg_replace(): Unknown modifier '\' in /home/myrusakov.ru/www/modules/searchresult_class.php on line 107

        https://myrusakov.ru/search.html?query=%2F%27

        Warning: preg_replace(): Unknown modifier '&' in /home/myrusakov.ru/www/modules/searchresult_class.php on line 107
        Ответить
    • Ну всё правильно. Русаков учит не только программированию на языке, но и его философии.
      Знаете у Эккеля есть "thinking Java"? Ну вот Русаков может написать: "Thinkning PHP".

      >>abstractdatabase_class
      >>mysqli::real_escape_string()
      /0
      Ответить
    • Ахахахахах
      А давайте коллективным разумом ломанём его сайтец и загрузим туда шелл
      Ответить
      • Я бы лучше загрузил туда гоатсе или фотографию своего члена хотя бы.
        Ответить
    • Скажи, если не жалко, как добиться чтобы сайт высрал эту хуету?
      Ответить
      • Инпуте Михаил повсеместно свято верит, что ему передадут именно строку, а не что-то другое
        Ответить
        • И правда:
          https://myrusakov.ru/search.html?query%5B%5D=tbl_xyu

          Даже и не думал, что на сайтах бывают такие глюки...
          Ответить
          • https://myrusakov.ru/?login[]=ololo&password[]=trololo&auth=1

            https://myrusakov.ru/reset.html?email[]=ololo

            https://myrusakov.ru/remind.html?email[]=ololo
            Ответить
            • P.S. Сначала намечались торжества, потом аресты, потом решили совместить:
              https://myrusakov.ru/search.html?query[]=tbl_xyu&login[]=ololo&password[]=trololo&auth=1

              Кто сможет высрать больше ворнингов?
              Ответить
              • P.P.S. Оказывается, ещё так можно:
                https://myrusakov.ru/register.html?name[]=foo&login[]=bar&email[]=baz&password[]=12345&password_conf[]=12345&captcha[]=12345&auth=1

                Но предыдущий пример интереснее.

                P.P.P.S. И на поддоменах так же:
                https://support.myrusakov.ru/?email[]=foo&password[]=bar&auth=1
                Ответить
                • Ломать пхпсайты это все равно что обижать детей
                  Ответить
                  • Но мы же его пока не сломали. Только плакать заставили.
                    Ответить
        • Спасибо, товарищ! Это оказалось даже увлекательнее, чем игра 2048.
          Ответить
    • https://srs.myrusakov.ru/php
      я чуть не охуел
      Ответить
      • работаю ни на какого дядю, сам себе хозяин. Когда мне был 21 год, я купил себе новую иномарку. Где каждая копейка в её стоимости – это мой труд вкупе с моими знаниями по созданию сайтов.
        Ответить
      • https://srs.myrusakov.ru/subscribe?email[]=foo&name[]=bar&delivery_id[]=42

        Простите, вырвалось.

        P.S. Ой!

        https://srs.myrusakov.ru/subscribe?email[]=foo&name[]=bar&delivery_id[]=42&auth=1&login[]=baz
        Ответить
        • ты нам добудешь бесплатные видеоуроки?
          Ответить
        • Интересно, а он кроме пхп еще же навернео и дизайну современному и верстке учит?
          https://srs.myrusakov.ru/

          табличная верстка, такая теплая и ламповая
          <table>
          				<tr>
          					<td>Все права защищены © 2017</td>
          					<td class="right"><a rel="external" href="https://support.myrusakov.ru">Служба поддержки</a></td>
          				</tr>
          				<tr>
          					<td>
          						<a href="https://srs.myrusakov.ru/offer">Публичная оферта</a>
          					</td>
          					<td class="right">
          						<a href="https://srs.myrusakov.ru/partner">Партнёрская программа</a>
          					</td>
          				</tr>
          			</table>


          >>class="right"

          чтобы отделить модель от представления не стал хардкодить align=right, а вынес в css
          Ответить
          • Использование элемента <table> для представления — не самое страшное, что бывает в современной вёрстке.

            А вот способ представления в качестве названия класса (class="right" как синоним align="right") это уже нехорошо. Но этим иногда грешат даже гиганты вроде Яндекса.
            Ответить
            • >>Использование элемента <table> для представления — не самое страшное
              Если модель имеет табличную структуру то да. А тут явно не так.
              Ответить
              • Согласен. Таблицы для табличных данных, для дизайна — всё остальное.

                Но проблема в том, что дивы и спаны (а точнее, display:block, display:inline, display:inline-block, float:left, float:right и что там ещё применяется при «дивной» вёрстке) заточены под вёрстку абзацев текста и при попытке применения к дизайну выдают нежданчики. Поэтому прошедшие по минному полю дизайнеры используют тег <div>, но со стилем display:table-cell, что фактически эквивалентно таблице...

                Мне нравится flexbox, но его в браузеры завезли недавно (ну как недавно? С вендорными префиксами и немножко другим синтаксисом он был уже в NN 9.0 и в Фуррифоксе 2.0, т. е. в 2006 году, но тогда про него никто не знал и вообще модно было верстать без стилей) и верстальщики его побаиваются. Ах да, пользователи IE<10 пролетают.
                Ответить
                • >>пользуют тег <div>, но со стилем display:table-cell, что фактически эквивалентно таблице...
                  нет, не эквивалентно. Модель все равно остается семантически верной. Какая разница что там в стилях?
                  Ответить
                  • > Модель все равно остается семантически верной.
                    Извернулись, поставили div для галочки. Дописали ещё пачку стилей. Упорно проверяем во всех браузерах со всеми разрешениями, чтобы вдруг где-то от недостатка места что-нибудь не поехало. Страница увеличилась на 5-20кб из-за стилей. В немейстримных браузерах творится какая-то хрень. В местах с плохим интернетом стиль не загрузился, пользователь наблюдает хаотично расставленные куски текста. Зато СЁМАНТИЧНО!

                    Домохозяйка из Нижнего Новгорода в интервью призналась, что хоть и страницы стали грузиться чуть медленней, а дизайнеркий кастомный скроллбар в полной мере не поддаётся ни клавиатуре, ни мыши, и заставляет под столом процессор страшно жужжать вентиляторами, СЁМАНТИЧНОСТЬ ей очень понравилась, без этого сайт был бы скучным как у Светки-соседки.

                    Заказчик упомянул, что контора сорвала сроки, а за заточку сайта под смартфон запросила отдельные деньги (хотя он видел, что таблица на сайте конкурентов работала и в IE5, и под новым Chrome на десктопе, и в Operе под S40), но сказал, что любит СЁМАНТИЧНОСТЬ, готов выдать каждому из разработчиков по килограммовой золотой медали, которые он сам лично изготовил, а также оплатить годовой отдых команды программистов в Таиланде за старания и заслуги в СЁМАНТИЧНОЙ ВЕРСТКЕ.
                    Ответить
                    • Да, хуёво тебе быть говнокодером за еду, конечно.
                      Ответить
                      • Да. Хотя, лучше живётся, чем заправщику тонера в линуск. Вхреначил див вместо таблицы - заказчик побольше доширака принёс.
                        Ответить
                        • смешно конечно слушать что семантическая верстка это "дивы", ну с другой стороны от джавскриптера другого ведь и не ждешь
                          Ответить
                          • > смешно конечно слушать что семантическая верстка это "дивы"
                            Согласен.
                            Ответить
                            • В HTML5 наконец-то появились семантические элементы вроде <article>, <aside>, <section>, <nav>, <header>, <footer>. Но чтобы к ним применить стили в старом IE, приходится делать хак вроде такого:
                              var useless_variable = document.createElement('article');

                              Как всегда, всё очевидно и понятно.
                              Ответить
                        • Да не спорь ты посто с паролем 123
                          Ответить
      • "Я чуть с ума не сошёл, пытаясь изучить PHP и MySQL"
        похоже, Михаил чего-то не знает.
        "Но что бы я делал, если бы очень плохо смыслил в программировании или вообще ничего в этом не понимал?"
        продавал бы курсы по пхп и интернет-магазинам. хотя постойте..
        Ответить
        • > Если Вы всё ещё боритесь с PHP и MySQL

          Огнём, мечом и ссаными тряпками
          Ответить
    • Смотрим первый же комментарий (15-Июн-14):
      http://rutracker.org/forum/viewtopic.php?t=4763129

      Как минимум два с половиной года автору плевать на ошибки в движке.

      71 ворнинг выдаёт такой безобидный запрос:
      https://myrusakov.ru/search.html?query=SELECT%20*%20

      Пока рекорд.
      Ответить
      • Есть ещё чего интересного?
        Тоже щас сел покопаться в говне.
        Ответить
    • https://www.youtube.com/watch?v=BuoaGPlWr-4
      Ответить
    • У него там search-строка разбирается по пробелам, и ищятся посты, которые содержат все подстроки. Далее он хочет обернуть все поисковые слова в span с помощью кода
      $inj = "()";
      $str = "str";
      var_dump(  preg_replace("#$inj#", "<span>$inj</span>", $str)  );

      код натравливает поочередно для каждого поискового слова

      Вот интересный запрос, где ломается вёрстка: https://myrusakov.ru/search.html?query=script+%28%29

      Вот сижу пытаюсь xss наколдовать
      Ответить
      • Вот ещё XD
        https://myrusakov.ru/search.html?query=script+.+.+.+.+.
        Ответить
      • > #$inj#
        Это типа шаблонизация?
        Ответить
        • $s = "[123]";
          $re = "#$s#"; // будет "#[123]#"
          preg_replace($re, '*', '12345'); // будет ***45
          Ответить
          • шаблонизация на регулярках
            и на строковой интерполяции
            уважаю
            Ответить
        • То есть в регулярку можно всё что угодно пихать, главное чтобы эта строка была хотябы в 1 посте. Жалко что по комментам не ищет, и своих постов нельзя писать.
          Ответить
      • > У него там search-строка разбирается по пробелам, и ищятся посты, которые содержат все подстроки
        Хехе, я помню одного крутого чела, который написал на yesod'е какую-то питушню с полнотекстовым поиском... естественно без индекса... на Data.String.find... на каждое слово из запроса по отдельности... по всей базе. Досился этот сайт руками.
        Так что пехапе -- оно в голове, а не в языке.
        Ответить
        • лол, наверное там еще релевантность хорошо считалась)

          вообще конечно смешно: полнотекст умеют все реляционные СУБД (включая даже богом обиженную мускуль) и еще десяток внешних тулзов специально заточенных: сфинкс, люсьен, solar, черта лысого в ступе
          Ответить
      • Сука, не успокоюсь пока не поломаю это решето
        Ответить
      • Я заподозрил, что у него регулярка собирается из поискового запроса, когда обнаружил массу ворнингов про preg_replace.
        Ответить
    • А что, если мускулю скормить
      select * from tbl where id='1 or 1=1'

      где id - числовое, то он найдёт запись id=1?
      Ответить
      • Причём 01 работает, а 0x1 нет
        Ответить
      • охуенная фича
        не субд а просто кладезь фич
        Ответить
        • Причём даже в sqlite такой фичи нет:
          http://ideone.com/QegBWf

          А пример с LIKE работает так же, как в MySQL:
          http://ideone.com/VtJJUG
          Ответить
        • Офтопик про Склайт:
          http://code.google.com/p/android/issues/detail?id=13045

          Вот тут ещё немного про фичу:
          https://habrahabr.ru/post/119243/
          Ответить
      • Оно пытается привести строку к числу и парсит её до первой не цифры?

        Всё-таки пых и мускуль созданы друг для друга.
        Ответить
      • При этом запрос
        select * from tbl where id like '1'

        находит нужную запись, а запрос
        select * from tbl where id like '1 or 1=1'

        не выдаёт ничего (выдаёт ноль записей).

        Т. е. для числового индекса знак равенства равносилен нестрогому сравнению, а оператор LIKE — строгому (потому что в этом случае он наоборот приводит число к строке).
        Ответить

    Добавить комментарий