Pull to refresh
97
0.3
FanatPHP @FanatPHP

User

Send message

С того же, с чего начну любую незнакомую задачу - загуглю php public node EVM

2023 год: Вам звонит Том Круз: как разоблачить дипфейк во время видеозвонка
2024 год: Разработчик с помощью дипфейка в реальном времени прошёл собеседование за друга
2025 год: проснулась информационная служба Хабра.

Смотря что называть поддержкой. Где-то строка по умолчанию является набором кодовых точек юникода, а массив байт - это исключение. Где-то наоборот - строка по умолчанию это массив байтов, но в определённом контексте она трактуется, как набор кодовых точек юникода. И в том и в другом случае поддержка есть.

Про стандартную библиотеку довод валидный, но, прямо скажем, очень жиденький. Да - и это, и массивы - всё это объективные недостатки. Которые, тем не менее, совсем не тянут на причины смерти. А скорее на объективную критику из раздела "Языки бывают двух видов - те, которые все ругают и те, на которых никто не пишет".

В целом у вас вполне валидный комментарий на тему "почему лично я не люблю РНР". Но пост немного не об этом.

А можете очень кратенько перечислить подводные камни при реализации web3-проекта на РНР?

Примеры использования языка тут совсем другие, выше по тексту. А вконтактик приведён как пример гибкости экосистемы. Так себе пример, но и комментарий у вас, прямо скажем, не первой свежести.

Ghost Riders in the Sky похоже на неофициальное название миссии, просто кто-то увидел очевидное созвучие. А жаль, было бы классно!

Но я обнаружил, что если модем переключить из 3G в GPRS, то шейпер не работает и скорость уже 256 килобит

Ахаха, прямо анекдот про чукчу и холодильник! Шикарная история!

Белый айпи это конечно печаль, а какая проблема со скоростью? Неужели 100 мегабит не хватает?

Мдаа, я помню в пхпклубе ржали над тогдашними ВДСками, буквально описывая их словами "два студента на коленке", но я даже представить себе не мог, насколько всё больше закручено :-D

У меня самого было проще, хостинг был бесплатный для друзей, так что работал он на обычном компе с Core2 Duo подключенном к домашнему интернету (правда, чтобы не класть канал, качая, кхм-кхм, исходники убунты, я раскошелился на отдельное подключение от Корбилайна, и тупо оплачивал два счёта, причем, кажется, сильно дешевле полутора тысяч в сумме).

Думаю, статью вполне можно добавить в хабы История айти и Компьютерное железо.

Это вам в комментарий чуть выше. А в новости всего лишь ручка с кнопками.

Я думаю, дело не в финансировании. Вы правы в том, что никакой менеджмент не решит проблему. Потому что он будет делать только то, что ему скажут. А что именно, и зачем - он не придумает. Тут нужен визионер - Королёв, Фон Браун, Маск. Как только визионеры уходят, тут же начинается бардак и стагнация, и никакие эффективные менеджеры, в кавычках или без, тут ничего не сделают. А точнее будут эффективно делать ничего.

Ошибку (разобранную) я вижу тут только одну, со структурой таблиц. При этом использованное решение объясняется почему-то не показом новой структуры таблиц... а картинками, показывающими интерфейс. Но при этом вижу другие ужасы со структурой таблиц и чудовищный код, на который я дал ссылку, и о котором вы вообще ни словом не заикнулись. То есть со всем остальным, по-вашему, всё в порядке? И вы предлагаете новичкам писать именно так:

        if ($_COOKIE["acclogin"] == $login) {
            $isAuthor = true;
        }

Вот с этим детским лепетом вместо авторизации, когда достаточно подменить куку чтобы авторизоваться под кем угодно?

$publicid = $_GET["id"];
$res = $conn->query("SELECT * FROM `communities` WHERE `publicid` = '$publicid'");

С хрестоматийной инъекцией из комикса про мальчика Bobby Tables?

$res = $conn->query("SELECT `id` FROM `communityposts` WHERE `community` = '$publicid'");
$id = $res->num_rows+1;

с нелепым инкрементом, который сломан даже в рамках своей собственной кривой логики?

Вот вы сейчас это серьёзно, считаете что можно рекомендовать новичкам проект, написанный по стандартам прошлого века, причём с детскими ошибками, которые уже тогда считались позором?

Мне кажется, вы не прочти мой комментарий.

Попробуйте прочитать его ещё раз, не торопясь. Подумайте - о чём он. Посмотрите, нет ли в нём вопросов, на которые вас попросили ответить. Задумайтесь над вопросом, нужно ли в хабе, посвящённом серверному программированию, описывать то, как выглядит ваш сайт. Или интересно ли профессиональным разработчикам, составляющим аудиторию Хабра, получать представление о первом, очень слабом проекте начинающего программиста. просто представьте себе свою потенциальную аудиторию. Кому в принципе адресована ваша статья?

Так никто и так не повторяет :) В таком стиле уже лет как 20 не пишут.

Мне вот даже интересно, откуда вы брали примеры кода? Что за книгу вы купили? Ведь даже идиот Робин Никсон в последних изданиях не пишет настолько чудовищные вещи. Если смотреть правде в глаза, то вас тут не размазали только потому, что никто не потрудился заглянуть в код. А учитывая, что в своей статье вы делали что угодно, только не разбирали этот кошмар, то ваше заявление про "чтобы никто не повторял" выглядит довольно жалко. Собственно, из ошибок вы упомянули только один косяк в структуре таблиц, из, минимум, десятка.

В целом, конечно, к теме "чтобы никто не повторял" это нелепое произведение не имеет никакого отношения. Скорее первая проба пера начинающего автора, такой лучащийся гордостью отчёт о проделанной работе, который годится разве что в школьную стенгазету, а на Хабр он попал по недоразумению.

Впрочем, не принимайте мои слова близко к сердцу (я уверен, что вы и так не принимаете, но всё равно чувствую себя обязанным это сказать). Хотя для Хабра образца хотя бы двухлетней давности эта статья - просто позор, для школьника это довольно сносное произведение. А тот факт, что вы его осилили говорит о том, что у вас есть потенциал и, возможно, со временем вы научитесь писать сносно - как код, так и тексты.

Просто на будущее

SQL инъекции - просто не нужно класть сырой ввод пользователя в SQL запрос.

Ошибка номер раз: во-первых, понятие "пользовательский ввод" не имеет чёткого определения, что не позволяет построить на его основе гарантированную защиту. Во-вторых, даже если ввод "не пользовательский", ошибки синтаксиса от спецсимволов SQL никто не отменял. Поэтому данное правило звучит гораздо проще: "никогда не класть данные прямо в запрос".

Валидацию никто не отменял.

Ошибка номер два: валидация относится к бизнес-логике. А к безопасности - наоборот, никакого отношения не имеет, за исключением очень редких специальных случаев.

Добавить туда prepared statements и инъекции не страшны

Непонятно, что имеется в виду под "добавить", если это и есть тот самый способ, при котором "данные не попадают прямо в запрос". При этом важно помнить, что сам по себе подготовленный запрос - не панацея, и лучше использовать формулировку "заменять актуальные данные в запросе на знаки подстановки".

Ошибка номер три: помимо данных, есть ещё идентификаторы и ключевые слова. Для них замена подстановками не сработает и их надо фильтровать через белые списки.

  • XSS атаки - снова валидация пользовательского ввода, html escape

Ошибка номер четыре, которую мы уже разбирали на примере инъекций. Во-первых, валидация пользовательского ввода сама по себе, а обеспечение безопасности - само по себе, они почти не пересекаются. Во-вторых, для защиты от XSS экранируют не "пользовательский ввод", а "любой вывод в зависимости от его контекста": если выводим в HTML, то применяем HTML экранирование, если выводим в JS, то применяем JS-экранирование - и так далее. И пользователь тут ну совершенно вообще не при чём.

Насчёт интервью согласен с вашими оценками, но тут надо понимать, куда идёшь. В FAANG, которого косплеит ВК, идеальным кандидатом является конформист-зубрила, прокачанный винтик. И система найма заточена на отсеивание всего остального.

Посмотрите в словаре значение этого слова и постарайтесь впредь употреблять его правильно.

Замах был на рубль, "я увидел в рекомендациях дурацкую статью". Читатель уж думает, сейчас ему напишут хорошую. А внутри ему открывают глаза на сканирование портов и ключи в репозиториях. Ну офигеть какая новость. А потом и вовсе выясняется, что всё затевалось ради реферальной ссылки.

И сама статья, и - особенно - вывод её хомячками в топ - это какой-то позор.

Ну по крайней мере тут и в комментариях достаточно хомячков, всерьёз дискутирующих с этим текстом. То есть ни заголовок, ни заведомо бессмысленный текст их не смутил. А это как раз те самые "пользователи Хабра". Боюсь, ваши представления о нынешней аудитории немножко слишком радужные.

Приходит проходимец

Что вы имеете в виду под словом "проходимец"?

Information

Rating
2,841-st
Registered
Activity

Specialization

Backend Developer, Web Developer
Middle
From 140,000 ₽
PHP
OOP
MySQL
Linux
Git
SQL
Database
Nginx
Bash
Laravel