Обновить
109
13.3
FanatPHP @FanatPHP

User

Отправить сообщение
Критика очень простая.
Типичный похапешник воображает, что ошибка бывает всегда только одна. Та, про которую он, похапешник, случайно узнал.
Мысль о том, что могут встречаться и другие ошибки, никогда не приходит ему в голову.
И по этой причине он начинает считать себя хитрее и умнее всех.
Ровно до тех пор, когда файл невозможно будет удалить не потому что кто-то успел раньше, а потому что нет прав на удаление или имя файла указано неверно.
В итоге наш похапешник имеет неработающее приложение и ни малейшей идеи — почему.
Это все-таки не аргумент, а фуфло.
Особенно при наличии нормальных аргументов.
Мне больше жульничество с лайком понравилось.
Искать без левого процента совсем несложно.
Но ведь даст такие неудобные цифры! :)
Есть такой анекдот.
Медсестра: Доктор, больному из третьей палаты плохо.
Доктор: Милочка, надо мыслить позитивнее. Говорите «больной думает, что ему плохо».
Через 30 мин.
Медсестра: Доктор, больной из третьей думает, что он умер.

Так вот.
Я понимаю, что доктору, конечно, виднее.
Но больной думает, что он умер.
Собственно, тут дело даже не в удобстве, а в поведенческом факторе.
Если не знаешь что внутри — кликнешь, накрутишь лишний pageview. Профит!
Да, странное нежелание с их стороны.
Именно по этой причине я не подписан на тег РНР — поскольку беспомощные котятки лепят его ко всему, от яваскрипта до администрирования серверов, и разгребать всю эту помойку банально нет времени.

В общем, прорывов с этой стороны ожидать не стоит. Трафик обеспечивают не немногочисленные специалисты, а бесчисленные нубы. Поэтому на удобство первых можно смело забить.
Все это уже давно реализовано на стаковерфлое:
Правки от untrusted нубов не видны, от авторитетных папок принимаются сразу.
Хочешь в папки — донать знаниями.

Но это не работает на стаковерфлое, не будет и на тостере.
На стаковерфлое толпы индусов ради мелкого прайса (порядка +2 в карму) отсматривают тонны вопросов, в которых не смыслят ни бельмеса — с нулевым выхлопом кроме совсем уж вопиющих случаев типа мата.
На Тостере же администрация не в силах отказаться от социалистических принципов демократического централизма, и модератор всему голова. В итоге судьей в споре между дураком и профессионалом будет выступать человек, не обладающий специальными знаниями. С тем же нулевым выхлопом.

Чтобы сайт мог нормально модерироваться, нужно сделать ровно две вещи:
1. Администрация должна быть честной с самой собой, и признать, что вместо ожидаемого «сайта на котором гугль ищет ответы на наши вопросы» имеется в реальности сайт для вопросов вида «у миня лабараторная ашыбка напишыте код». 9 / 10 шлака должно сливаться безжалостно, вне зависимости от того, помогли очередному двоечнику воспользоваться гуглем, или нет.
2.Научиться привлекать на сайт профессионалов и гонять малолетнюю шелупонь. И это как раз проблема посложнее многих: профессионалу тупо некогда зависать на сайте. В то время как у школоты и времени вагон, и очень хочется самоутверждения.

А все эти редактирования и истории хорошо смотрятся на вайтборде в комнате для совещаний, но в реальной жизни работать не будут.
Кстати, большая просьба отображать все теги вопроса, а не самый общий и нерелевантный.
Заходишь в вопрос, думаешь — там интересная академическая задачка, а выясняется, что тупой поиск модуля для какой-то убогой коммерческой приблуды.

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

И правда. Как посмел автор вместо привычной пережёваной легкой кашицы к утреннему кофе допустить примитивную интригу в тексте? Заставить чуть-чуть пошевелить мозгами? Пусть пишет предупреждение. Objects in mirror are closer than they appear.
Где это видано, чтобы статья на хабре заставляла напрягать мозг?
Моя тоже. No sarcasm.
Прекрасная функция, у которой нет никаких проблем, кроме пользователей.
Ну и для полноты картины стоит добавить, что в PDO аналогичный эффект достигается заданием charset в DSN. Работает начиная с 5.3.6
Очень грустно читать статью, автор которой предубеждён против какой-либо технологии, и, за неимением фактов, пытается отстаивать свои пристрастия с помощью голословных утверждений.

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

Это единственно правильное поведение в 99.9% случаев.
Поддерживаемые базой подготовленные выражения ориентированы на однократную подготовку и множественное выполнение одного и того же запроса. В пхп такое поведение требуется в мизерном количестве случаев. Всё остальное время гонять запрос в БД по два раза, чтобы «достичь уровня просветления подготовленного выражения» — бессмысленно. И замена плейсхолдеров на их значения, производимая PDO, работает прекрасно.

Да, режим эмуляции приводит к небольшим неудобствам.
Да, параметр LIMIT без явного указания типа приведет к ошибке.
Да, даже явное указание не спасёт для случая
$stmt->bindValue('limit', '10', PDO::PARAM_INT);

— PDO все равно добавит кавычки, несмотря на модификатор PDO::PARAM_INT.
Но положа руку на сердце — это не те проблемы, ради которых стоит устраивать такой шум. Режим эмуляции — прекрасная вещь, и бежать отключать его совсем не обязательно.

Несмотря на то, что мы явным образом отключили уровень эмуляции подготовленных выражений в PDO, он всё ещё немного активен. У него инициирован парсинг параметров. Есть два вида синтаксиса параметров: анонимные параметры, представленные как «?» в вашем запросе на заполнение, и именованные параметры, вроде «:myparam». Не каждая RDBMS поддерживает оба синтаксиса, причём MySQL не поддерживает именованные, только анонимные. Однако наш предыдущий запрос завершён без проблем. Всё дело в том, что анализатор запросов PDO всё ещё активен, даже с отключённым уровнем эмуляции. Он вмешался и заменил каждый именованный параметр на анонимный

Я не пойму — это аргумент за «режим эмуляции» или против? Судя по тону автора, складывается впечатление, что второе.
Однако по отзывам знакомых программистов — это чуть ли не лучшее, что есть в PDO.

Поэтому отключите этот уровень эмуляции как можно скорее

Куда полезнее будет включить режим критического отношения к голословным утверждениям (это же относится к заявлениям еще одного противника режима эмуляции — А.Феррары, если вам случалось читать их на Stackoverflow).
Этому автору бессмысленно задавать вопросы по содержанию «его» постов. Он не знает ответа. Поскольку просто пересказывает своими словами чужие статьи, добавляя немного отсебятины. В данном случае это www.michaelbromley.co.uk/blog/171/enable-rich-social-sharing-in-your-angularjs-app и там про сео как раз ничего нет.

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

Не работает. Любая халтура, которая сляпана с помощью копипасты и хорошо подвешенного языка, легко проходит фильтр. При этом минусы, которые получила статья — они не за качество. А за банальность темы. Есть такая фишка на Хабре, минусовать статьи на тему, которая кажется всем избитой, про которую «все всё знают». Ага, знают. Тема, казалось бы, всем известна, но принципиальные ошибки видит всего пара человек.

Увы, отрицательная селекция, которой занимался Хабр все эти годы, дала свои плоды.
И дело совсем не в циферках кармы. Проблема в людях. У которых политика ресурса выработала два очень устойчивых рефлекса:
1. Заявленный, как технологическая площадка, Хабр, пор сути, превратился в этакий глянец, для чтения за завтраком. Про красивые гаджеты, модные аксессуары и космические новости. И у пользователей выработался рефлекс ставить плюсик статье, которая выглядит, как хорошая. В суть же вчитываются единицы: это же новостной ресурс о всяких диковинках. Прочитал-заплюсовал-пролистал дальше.
2. Шакалья политика затаптывать несогласных с мнением большинства вывела специальную породу юзера-конформиста, очень тщательно взвешивающего свои слова и никогда не идущего на конфликт, даже при 100% сознании собственной правоты. Обладающие же собственным мнением все давно ушли в минуса.

Так что надеяться на сообщество не стоит. Оно будет продолжать поощрять любую халтуру и графоманию — лишь бы выглядело красиво и не напрягало мозги.

Новые правила, конечно, будут получше в этом плане. Но селекция, увы, всё равно направлена на креативщиков, а не специалистов. Пересказать своими словами чужую новость и описать собственное исследование — это несоразмерные сущности. Новости можно постить хоть каждый день. Людей же, готовых потратить пару недель своего времени, чтобы написать что-то оригинальное, основанное на личном опыте — очень мало. В итоге, программа, призванная наделять правом голоса специалистов, на самом деле оставляет их за бортом, выдвигая новостников и PR-отделы корпораций.
В общем, эта публикация как бы говорит нам, что получения вожделенных гражданских прав не нужно обладать ни знаниями, ни опытом, ни совестью.
Нужно всего лишь немного наглости и воображения:
1. Найти в интернете копипасту от очередного незнайки с кучей ляпов в стиле «слышал звон, да не знаю где он».
2. Перевести её (снова без малейшего понимания, оставив все ляпы на месте).
3. Нафантазировать пару красивых деталей от себя.
4. На критические замечания отвечать в стиле «божья роса».
5. PROFIT!!!
Верно.
Но по умолчанию-то EMULATE_PREPARES включена. И для «знака 0xbf5c27» вышеприведенный код при дефолтных настройках угрозы не представляет.
Я вас умоляю.
Если такие вещи надо объяснять, то это заранее бесполезно.
Предназначение этого текста — вызывать восхищение у детей младшей школы, и с этой задачей он справляется прекрасно. Это всё.
Такого рода опусы все пишутся под одну копирку:
— про поиск уязвимости — ничего
— про защиту — хочется плакать кровавыми слезами
— про эксплуатацию — аффтар щеголяет знанием пары банальных SQL операторов, дотоле неизвестных незадачливому читателю, выдавая их за сакральные хакирские техники (при этом в подавляющем большинстве случаев никогда сам их не применял, а тупо скопипастил у такого-же горе-писаки, и не в состоянии объяснить, как и почему работает или не работает тот или иной запрос)

Для того, чтобы осуществить инъекцию, не нужно быть хакиром и читать макулатурные статьи.
Надо просто знать SQL. Если не знаешь — то набор наизусть выученных «приемчиков» тебе не поможет. А если знаешь — то не понадобится.
Очень жаль.
Я надеялся на честный ответ.
По ссылке выше написана полная ересь, которую извиняет только доисторическая дата написания.
Сюда это постить не стоило.
В этом комментарии содержится несколько заблуждений
1. С подавляющим большинством кодировок addslashes() абсолютно безопасна, если используется по назначению.
2. Сами по себе pdo & prepared statement в случае воображаемой автором атаки — не панацея, и при установках по умолчанию пропустит инъекцию за здорово живешь. Чтобы в кодировках, подверженных данному типу инъекции, атака становилась невозможной, ПДО надо настраивать специально.
3. Дарагая похапешечка, вместе со всеми своими функциями и расширениями, тут как бы вообще не при чем.

Информация

В рейтинге
557-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Веб-разработчик
Средний
От 140 000 ₽
PHP
ООП
MySQL
Linux
Git
SQL
Базы данных
Nginx
Bash
Laravel