Рубрика «Программирование» - 460

Книга «Безопасность в PHP» (часть 2). Атаки с внедрением кода - 1

Книга «Безопасность в PHP» (часть 1)

В списке десяти наиболее распространённых видов атак по версии OWASP первые два места занимают атаки с внедрением кода и XSS (межсайтовый скриптинг). Они идут рука об руку, потому что XSS, как и ряд других видов нападений, зависит от успешности атак с внедрением. Под этим названием скрывается целый класс атак, в ходе которых в веб-приложение внедряются данные, чтобы заставить его выполнить или интерпретировать вредоносный код так, как это нужно злоумышленнику. К таким атакам относятся, например, XSS, внедрение SQL, внедрение заголовка, внедрение кода и полное раскрытие путей (Full Path Disclosure). И это лишь малая часть.

Читать полностью »

Привет!

Меня зовут Марко, я работаю в Badoo в команде «Платформа». Не так давно на GopherCon Russia 2018 я рассказывал, как работать с координатами. Для тех, кто не любит смотреть видео (и всех интересующихся, конечно), публикую текстовый вариант своего доклада.

Знакомство с гео-библиотекой S2 от Google и примеры использования - 1

Введение

Сейчас у большинства людей в мире есть смартфон с постоянным доступом в Интернет. Если говорить в цифрах, то в 2018 году смартфон будет у почти 5 млрд людей, и 60% из них пользуются мобильным Интернетом.

Это огромные числа. Компаниям получать координаты пользователей стало легко и просто. Эти лёгкость и доступность породили (и продолжают порождать) огромное количество сервисов, основанных на координатах.

Всем нам известны компании типа Uber, игры, покорившие мир, такие как Ingress и Pokemon Go. Да что уж там, в любом банковском приложении есть возможность увидеть банкоматы или скидки поблизости.

Мы в Badoo также очень активно используем координаты, чтобы предоставлять своим пользователям лучший, актуальный и интересный для них сервис. Но о каком именно использовании идёт речь? Давайте посмотрим на примеры сервисов, которые у нас есть.
Читать полностью »

LLVM 6 уменьшает опасность Spectre, имеет улучшенную поддержку Windows и CPU компании Intel, а также включает WebAssembly в число поддерживаемых целевых платформ.

Что нового в LLVM - 1

Инфраструктура компилятора LLVM прошла путь от технически любопытной вещи до живой части современного ландшафта программного обеспечения. Это то ядро, которое стоит за компилятором Clang, за компиляторами языков Rust и Swift, и предоставляет широкие возможности для разработки компиляторов для новых языков.
Читать полностью »

Всем привет! В марте в московском Технополисе прошла конференция, посвященная языку программирования Go — GopherCon Russia 2018. На ней прозвучали выступления от core-team — было круто услышать из первых уст о том, как нужно делать правильно. И конечно, не обошлось без докладов про микросервисы, опентрейсинг, работу с сетью в Go, создание клиентских библиотек и крутых инструментов.
Хотим сказать «спасибо» выступающим — за доклады и организаторам — за возможность пообщаться с живым Бредом Фитцпатриком и настоящей Эшли МакНамара. Под катом рассказываем о докладах, мастер-классах и конкурсе от Avito, а также разыгрываем немного Go-сувенирки.

Avito на GopherCon Russia 2018 - 1

Большинство фото мы взяли из отчета, выложенного на странице GopherCon Russia 2018 в Facebook.

Читать полностью »

Кажется, у компании Crossover становится традицией анонсировать свои карьерные турниры, рассказывая о людях, уже работающих по специализации, на которую пойдёт отбор. Но сегодняшний случай особенный: хотя «примерка» на роль Chief Software Architect 7 апреля проходит в Москве, наш «Chief Software Architect дня» живёт даже не в России, а в соседней для дефолтной хабранации республике. Видимо, поэтому Crossover предложил мне взять у него интервью — может, они надеялись на какую-то особую белорусскую перспективу в разговоре двух белорусов, двух минчан и двух фрилансеров?

Впрочем, это сейчас Сергей rserge Рогач живёт и работает в Минске. Будущий Chief Software Architect компании родился в городке-десятитысячнике Глубокое Витебской губернии, в подбрюшье Браславских озёр — и эта череда топонимов словно сама уносит дальше, куда-то в сторону леса Фангорн, лежащего в отрогах Мглистых гор…

image
Поднимите руки, кто на Браславские озёра хочет больше, чем в Чикаго?

…только Сергей после девятого класса поступил в лицей при БГУ — одну из самых престижных школ Беларуси при главном университете страны. Учиться там в 2001–2003 годах было никому не скучно: аббревиатура БГУ грохотала как название одной из самых смешных команд КВН в истории, а Сергей два года подряд попадал в четвёрку старшеклассников, представлявших Беларусь на международной олимпиаде по программированию.
Читать полностью »

JSON, YAML сейчас популярны, а XML технологии считаются пережитком прошлого.

Взаимные превращения JSON, YAML, XML - 1

Попробуем использовать «ретро технологии» для работы с данными в формате JSON и YAML. И порассуждаем о причинах применять их в наши дни.
Читать полностью »

Доброго времени суток, уважаемые читатели Хабра. Представляю вашему вниманию цикл статей «Мамкин архитектор». В нем я постараюсь отразить личное мнение относительно построения гибких архитектур. Попутно объясню, как это пригодится менеджерам и поможет разработчикам укрепить основные понятия.

image


В этой статье речь пойдет о «творческом подъеме», «творческом спаде» и о покерном понятии «тильт». Последнее отлично отражает состояние разработчика в тех или иных состояниях предметной модели в разрезе программной архитектуры. Опус пригодится:

  1. Менеджерам, решающим вопросы от разработчиков вроде «давайте все закопаем и переделаем».
  2. Прикладным разработчикам, которым будет интересно заглянуть за броню инкапсуляции тщательно выстроенной (или хаусе) предметной модели в концептуальном ее виде.
  3. Архитекторам или дизайнерам системы будет интересен мой опыт внедрения, поддержки и удержания предметной модели в концептуальных контурах.

Читать полностью »

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

Нужно ли менеджеру уметь программировать - 1

Все понимают, что для работы над продуктом, особенно в IT, знания технологий так или иначе необходимы. Для менеджера не должны быть новыми слова «бэкенд», «верстка», «база данных». Чтобы отлавливать баги или видеть точки роста в продукте, нужно не просто постоянно им пользоваться, но и понимать, как он устроен. К разработчикам лучше приходить с формулировками «на мобильном интернете долго отдаётся вёрстка» или «при таком сценарии не загружается часть данных», а не говорить «вот тут что-то тормозит, посмотри». Таким образом менеджер перекладывает генерацию и проверку гипотез о том, что же происходит в проблемном месте, на разработчика, у которого «такая же точно нога, но не болит».

Если же менеджер, например, при воспроизведении проблемы открыл браузерную консоль, увидел в ней сетевые ошибки и пришел к разработчику с данными из трейсов этих ошибок, или сам заглянул в данные и увидел, что бэкенд отдал некорректный json, ситуация сразу начинает выглядеть как подкрепленная доказательствами проблема, а не просто жалоба единичного пользователя.
Читать полностью »

СЕЗАМ

Был у меня когда-то давно сенсорный чудо-выключатель СЕЗАМ. Очень он мне нравился. Но времена меняются, перестал вписываться в интерьер, а потом и вовсе оказался не рассчитан на работу со всякими модными энергосберегающими лампами. Нравился мне в нём принцип управления. Короткое касание сенсора включало/выключало свет, а длительное регулировало яркость. Кому интересно — сердцем выключателя была микросхема К145АП2, аналог Siemens S576B (К145АП2 до сих пор продаются).

Под катом мой вариант эмуляции работы этой микросхемы.

Читать полностью »

Команда Rust рада сообщить о новой версии Rust: 1.25.0. Rust — это системный язык программирования, нацеленный на безопасность, скорость и параллельное выполнение кода.

Если у вас установлена предыдущая версия Rust, для обновления достаточно выполнить:

$ rustup update stable

Если же у вас еще не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта. С подробными примечаниями к выпуску Rust 1.25.0 можно ознакомиться на GitHub.

Что вошло в стабильную версию 1.25.0

Несколько последних выпусков были незначительными, но Rust 1.25 содержит много
нововведений! Во-первых: мы обновили LLVM с 4-ой версии до 6-ой. Обновление
влечёт ряд изменений, наиболее важное из которых — поддержка AVR.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js