К теме статьи напрямую не относится, но очень часто разработчики грешат тем, что «оптимизируют» экранирование, если уверены, что исходные данные чисты. E-mail или числа — как раз примеры таких данных, только вот и те, и другие могут быть проблемой (про e-mail уже написал, а числа могут быть отрицательными, т.е. -... и это иногда может быть дырой).
Поэтому совет проверки входной строки на простое наличие там @ я лично считаю опасным. В общем случае.
Вообще, первое правило защиты — не доверять ничему, что как-либо соприкасалось с данными извне. В Ruby есть очень интересная концепция tainted, когда виртуальная машина будет автоматически помечать все переменные, которые «взаимодействовали» с пользовательскими данными, как «ненадёжные» и в таких функциях, как exec, можно затем заблокировать выполнение, получив tainted-переменную.
*.jpeg эквивалентен *.jpg, nginx и другие сервера его отлично распознают. Другой вопрос — зачем проверять на 'jpg' в коде, если там всегда будет 'jpeg'? Авторы перестраховались.
Согласен, оптимальный вариант — выносить все скрипты за DocumentRoot, а для корня сайта отключать их выполнение. Либо если так не получается — отключать выполнение скриптов для пользовательских папок. Но увы, до сих пор многие движки грешат наследием и позволяют запускать всё и отовсюду. В этой связи особенно интересны ошибки в настройке nginx+fcgi, когда запустить на выполнение можно любой скрипт вне зависимости от его расширения (ссылка есть в статье).
Ролик просто шикарный, посмотрел с удовольствием. Сделан профессионально. Молодцы!
Эодно пожелание — делать транскрипт или хотя бы краткое содержание для тех, кто не хочет или не может смотреть все 10 минут.
Было бы вам интересно совместное развитие такого форматтера? У меня с 2009 года есть проект вики-разметки, учитывающий особенности русской раскладки (никаких backticks, апострофов и т.п). Сам им пользуюсь в своей работе, но уверен, что он может пригодиться не только мне.
Вот ссылка на документацию: uverse.i-forge.net/wiki/demo/Basic. Парсер самодостаточный, PHP 5+.
Если заинтересовало — буду рад пообщаться.
Хотя практика показывает, что навык этот практически отсутствует у людей без ВО.
Как закончивший 9 классов и drop-out из универа, осваивавший всё с 10 лет сам и работав/ющий на самых разных позициях от низа до верха позволю себе не согласиться. Возможно, меня можно отнести к «исключениям из правил», о которых писал автор, но на мой взгляд такие «исключения» создаются искусственно нынешней образовательной системой и нормально воспринимающих знания людей могло бы быть на порядок больше, стоит только изменить систему оболванивания. В конце концов это (восприятие знаний, а не оболванивание) — нормальная черта humo sapiens.
Впрочем ладно, это уже перерастает в политдискуссию. Чего доброго ещё забанят.
Ради этого навыка стоит потратить 5 лет молодости? По мне так при должной мотивации вы за 5 лет миллион раз освоите все возможные способы работы с «методичками».
Все верно, именно поэтому я взял «обратную совместимость» в кавычки — решение с Blade совершенно не понятно. Можно объяснить только тем, что Тейлор не видит с XSS каких-либо проблем, как до 4.2 не видел проблем с «зашифрованной» кукой laravel_remember.
-...
и это иногда может быть дырой).Поэтому совет проверки входной строки на простое наличие там
@
я лично считаю опасным. В общем случае.Вообще, первое правило защиты — не доверять ничему, что как-либо соприкасалось с данными извне. В Ruby есть очень интересная концепция tainted, когда виртуальная машина будет автоматически помечать все переменные, которые «взаимодействовали» с пользовательскими данными, как «ненадёжные» и в таких функциях, как
exec
, можно затем заблокировать выполнение, получив tainted-переменную.Эодно пожелание — делать транскрипт или хотя бы краткое содержание для тех, кто не хочет или не может смотреть все 10 минут.
Вот ссылка на документацию: uverse.i-forge.net/wiki/demo/Basic. Парсер самодостаточный, PHP 5+.
Если заинтересовало — буду рад пообщаться.
… которая вот уже несколько лет как старательно копирует Хром. А какой Хром без ДРМ? Все логично.
Как закончивший 9 классов и drop-out из универа, осваивавший всё с 10 лет сам и работав/ющий на самых разных позициях от низа до верха позволю себе не согласиться. Возможно, меня можно отнести к «исключениям из правил», о которых писал автор, но на мой взгляд такие «исключения» создаются искусственно нынешней образовательной системой и нормально воспринимающих знания людей могло бы быть на порядок больше, стоит только изменить систему оболванивания. В конце концов это (восприятие знаний, а не оболванивание) — нормальная черта humo sapiens.
Впрочем ладно, это уже перерастает в политдискуссию. Чего доброго ещё забанят.