Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

Время на прочтение8 мин
Количество просмотров67K

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

Я не буду пытаться сделать из вас эксперта в Bash, а просто покажу минимальный шаблон, который поможет сделать ваши скрипты более надежными и безопасными.

Читать далее
Всего голосов 109: ↑109 и ↓0+109
Комментарии27

Ресурсы изучения финансов на английском (США), или Как оценить компанию

Время на прочтение3 мин
Количество просмотров5.7K
Когда я училась на магистратуре финансов в столичном ВУЗе, наличие профессиональных англоязычных ресурсов для меня было просто vital. И ещё необходимее было найти перевод.

Эта статья будет полезна не только финансистам и стартаперам, а и айтишникам, потому что последним будут платить больше за дополнительный прокачанный скилл — чем не мотивация?


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

Чтение: 7 минут
Read more
Всего голосов 6: ↑5 и ↓1+10
Комментарии6

Создать отдел тестирования — просто

Время на прочтение3 мин
Количество просмотров12K
Есть типовая корпоративная задача — создать и развить практику тестирования для нескольких подразделений, продуктов или проектов. Как один из универсальных вариантов решения рассмотрим организацию отдела.

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

Disclimer: универсальных рецептов не бывает, автор исходит из опыта создания и развития практики тестирования в крупных ИТ-компаниях и не претендует на истину во всех инстанциях :)
Читать дальше →
Всего голосов 10: ↑5 и ↓50
Комментарии24

Python.org рекомендует: Программирование для НЕпрограммистов

Время на прочтение5 мин
Количество просмотров43K
Предлагаем вашему вниманию подборку материалов от python.org о том, с чего начать первые шаги в программировании.




Если Вы никогда не занимались программированием раньше, эти материалы для вас. Данные туториалы не предполагают, что у вас есть какой-то опыт. (Если у вас уже есть опыт программирования, посетите Beginners Guide).
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии3

Что такое *args и **kwargs в Python?

Время на прочтение4 мин
Количество просмотров390K
Функции — это жизнь. Правда? Если вы только начали осваивать Python, неважно — первый ли это ваш язык программирования, или вы пришли в Python из другого языка, то вы уже знаете о том, что количество параметров в объявлении функции соответствует количеству аргументов, которые передают функции при вызове.



Это — основы. Это то, что помогает людям понимать окружающий мир. Но утверждение «количество параметров равно количеству аргументов» закладывает в голову новичка бомбу замедленного действия, которая срабатывает после того, как он увидит в объявлении функции таинственные конструкции *args или **kwargs.

Не позволяйте всяким значкам загонять себя в ступор. Тут нет ничего архисложного. В общем-то, если эти конструкции вам незнакомы — предлагаю с ними разобраться.
Читать дальше →
Всего голосов 39: ↑32 и ↓7+44
Комментарии15

Hack The Box — прохождение Craft. Копаемся в Git, эксплуатируем уязвимости в API, разбираемся с Vault

Время на прочтение4 мин
Количество просмотров11K
image

Данной статьей я начну публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. Мы рассмотрим, как можно проэксплуатировать RCE в API, покопаемся в репозиториях Gogs, поработаем с базами данных и разберемся c системой хранения и управления секретами Vault.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

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

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Базовые команды Linux для тестировщиков и не только

Время на прочтение24 мин
Количество просмотров248K

Предисловие


Всем привет! Меня зовут Саша, и я больше шести лет занимаюсь тестированием бэкенда (сервисы Linux и API). Мысль о статье у меня появилась после очередной просьбы знакомого тестировщика подсказать ему, что можно почитать по командам Linux перед собеседованием. Обычно от кандидата на позицию QA инженера требуют знание основных команд (если, конечно, подразумевается работа с Linux), но как понять, про какие команды стоит почитать во время подготовки к собеседованию, если опыта работы с Linux мало или вовсе нет?

Поэтому, хоть про это уже и много раз написано, я всё же решился написать ещё одну статью «Linux для новичков» и перечислить здесь базовые команды, которые нужно знать перед любым собеседованием в отдел (или компанию), где используют Linux. Я подумал, какие команды и утилиты и с какими параметрами я использую чаще всего, собрал фидбек от коллег, и скомпоновал это всё в одну статью. Статья условно делится на 3 части: сначала краткая информация об основах ввода-вывода в терминале Linux, затем обзор самых базовых команд, а в третьей части описывается решение типовых задач в Linux.
Читать дальше →
Всего голосов 65: ↑53 и ↓12+51
Комментарии50

Взлом с помощью Юникода (на примере GitHub)

Время на прочтение3 мин
Количество просмотров25K
Юникод исключительно сложен. Мало кто знает все хитрости: от невидимых символов и контрольных знаков до суррогатных пар и комбинированных эмодзи (когда при сложении двух знаков получается третий). Стандарт включает 216 кодовых позиций в 17-ти плоскостях. По сути, изучение Юникода можно сравнить с изучением отдельного языка программирования.

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

Специалист по безопасности Джон Грейси продемонстрировал на примере GitHub баг проверки адреса электронной почты для восстановления забытого пароля. Подобные баги можно встретить и на других сайтах.
Читать дальше →
Всего голосов 53: ↑51 и ↓2+61
Комментарии59

Краткий путеводитель по математике для иностранцев

Время на прочтение25 мин
Количество просмотров28K


О чем это


А как можно на четвёртом десятке и с аверсией к алгебре наверстать требуемый материал первых курсов университета?

Безумству храбрых поем мы песню!

Целевой аудиторией Путеводителя являются те, кто внезапно заинтересовался математикой или чувствует потребность повысить свою профессиональную эффективность, но по какой-либо причине не имеет возможности отдать несколько лет своей жизни академическому образованию. Если у вас возникла потребность разобраться, но фундаментальных знаний катастрофически не хватает, и вы чувствуете себя иностранцем в стране математики, где говорят на непонятном языке, попробуйте пройти этот путь в качестве туриста. Весь маршрут представляет собой обзорную экскурсию и рассчитан на несколько дней, максимум две недели. Для сравнения: полный академический курс составляет около пяти лет. Конечной целью предлагаемого маршрута является знакомство с принципами одного узкоспециального раздела — эллиптической криптографии. Однако до конца идти не обязательно, если этот раздел лежит вне сферы ваших интересов или вы столкнулись с серьезными трудностями или опасностями. Но, раз уж вы взяли в руки Путеводитель, всё же постарайтесь дойти хотя бы до конца раздела «Язык формул».


Подобно словарю, этот путеводитель можно использовать и для обратного перевода. Возможно, он пригодится математикам, которые вынуждены контактировать и тесно сотрудничать с нематематиками, постоянно преодолевая пропасть непонимания. Дело это представляется настолько трудным, что строчка Максима Горького в эпиграфе является универсальным ответом обеим сторонам. В любом случае я надеюсь на обратную связь и постараюсь пополнять наши знания о том, почему нас не понимают, и как это можно исправлять.


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

Читать дальше →
Всего голосов 83: ↑78 и ↓5+73
Комментарии35

Охота за ошибками, Blind-XSS и лисьи хитрости

Время на прочтение6 мин
Количество просмотров8.1K

Лисы знают толк в охоте :)

Многие наверняка уже слышали о BugBounty, поиске уязвимостей с вознаграждениями и сопутствующих историях об этом. Я, как один из «охотников за ошибками», начал свой путь чуть больше года назад на площадке HackerOne. За это время мне удалось многое узнать о различных видах уязвимостей, получить много опыта и теперь мне хотелось бы поделиться этим с сообществом.

В этой статье я хочу рассказать о таком типе уязвимостей, как Blind Cross-site Scripting или слепой хранимый межсайтовый скриптинг, если переводить на русский. Приглашаю под кат, если вас интересуют подобные темы или вы желаете улучшить безопасность своего приложения.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Уравнение Навье-Стокса и симуляция жидкостей на CUDA

Время на прочтение24 мин
Количество просмотров54K
Привет, Хабр. В этой статье мы разберемся с уравнением Навье-Стокса для несжимаемой жидкости, численно его решим и сделаем красивую симуляцию, работающую за счет параллельного вычисления на CUDA. Основная цель — показать, как можно применить математику, лежащую в основе уравнения, на практике при решении задачи моделирования жидкостей и газов.


Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии30

OWASP API Security Top 10 RC

Время на прочтение4 мин
Количество просмотров14K
image
Этот проект предназначен для постоянно растущего числа организаций, которые внедряют потенциально чувствительные API в рамках своих программных решений. API используются для внутренних задач и для взаимодействия со сторонними сервисами. К сожалению, многие API не проходят тщательного тестирования безопасности, которое сделало бы их защищенными от атак, увеличивая ландшафт угроз для веб-приложения.

Проект безопасности OWASP API Security Top 10 предназначен подчеркнуть потенциальные риски в небезопасных API и предложить меры снижения таких рисков.
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии1

9 лучших опенсорс находок за август 2019

Время на прочтение2 мин
Количество просмотров51K

Доброй осени, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за август 2019.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Python, Rust, JavaScript, Go.
Тематика: веб разработка, администрирование, инструменты разработчика.

Читать дальше →
Всего голосов 76: ↑74 и ↓2+72
Комментарии44

Распределённая трассировка: мы всё делали не так

Время на прочтение13 мин
Количество просмотров15K
Прим. перев.: Автор этого материала — Cindy Sridharan, инженер из компании imgix, занимающаяся вопросами разработки API и, в частности, тестирования микросервисов. В этом материале она делится своим развёрнутым видением актуальных проблем в области распределённой трассировки, где, по её мнению, наблюдается недостаток по-настоящему эффективных инструментов для решения насущных задач.


[Иллюстрация заимствована из другого материала про распределенную трассировку.]

Считается, что распределенную трассировку сложно внедрять, да и отдача от нее в лучшем случае сомнительная. «Проблемность» трассировки объясняют множеством причин, при этом часто ссылаются на трудоемкость настройки каждого компонента системы для передачи соответствующих заголовков вместе с каждым запросом. Хотя эта проблема действительно имеет место, ее вовсе нельзя назвать непреодолимой. Она, кстати, не объясняет, почему разработчики не очень любят трассировку (даже уже функционирующую).
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии1

10 книг для понимания устройства фондового рынка, инвестиций на бирже и автоматизированной торговли

Время на прочтение4 мин
Количество просмотров112K


Изображение: Unsplash

Современный фондовый рынок – это масштабная и довольно сложная область знаний. Сходу разобраться в том, «как здесь все устроено» бывает непросто. И несмотря на развитие технологий, вроде робоэдвайзеров и тестовых торговых систем, появления низкорисковых способов инвестирования, вроде структурных продуктов и модельных портфелей, для успешной работы на рынке стоит получить базовые знания в этой области.

В этом материале мы собрали десять книг, которые помогут разобраться с устройством современного фондового рынка, тонкостями инвестирования на нем, и том, как здесь используются передовые технологии.
Читать дальше →
Всего голосов 25: ↑18 и ↓7+11
Комментарии12

Криптографические атаки: объяснение для смятённых умов

Время на прочтение33 мин
Количество просмотров53K
При слове «криптография» некоторые вспоминают свой пароль WiFi, зелёный замочек рядом с адресом любимого сайта и то, как трудно залезть в чужую почту. Другие вспоминают череду уязвимостей последних лет с говорящими аббревиатурами (DROWN, FREAK, POODLE...), стильными логотипами и предупреждением срочно обновить браузер.

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

За последние годы коллекция криптографических атак превратилась в зоопарк кричащих логотипов, набитых формулами научных статей и породила общее мрачное ощущение, что всё сломано. Но на самом деле многие из атак основаны на нескольких общих принципах, а бесконечные страницы формул часто сводятся к простым для понимания идеям.
Читать дальше →
Всего голосов 103: ↑103 и ↓0+103
Комментарии22

Перенос сайта на статику: мотивация, стоимость, работа

Время на прочтение6 мин
Количество просмотров22K

Недавно мы сделали то, о чём грезят все программисты и дизайнеры — переписали всё с нуля: полный редизайн нашего сайта и написание «движка» с чистого листа. Ниже поведаем о мотивации и процессе миграции с онлайн-CMS на статику.





Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии46

Сети Kubernetes: Ingress

Время на прочтение12 мин
Количество просмотров54K
Сегодня мы публикуем перевод третьей части руководства по работе с сетями в Kubernetes. В первой части речь шла о подах, во второй — о сервисах, а сегодня мы поговорим о балансировке нагрузки и о ресурсах Kubernetes вида Ingress.

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии3

Руководство по развертыванию моделей машинного обучения в рабочей среде в качестве API с помощью Flask

Время на прочтение13 мин
Количество просмотров24K
Друзья, в конце марта мы запускаем новый поток по курсу «Data Scientist». И прямо сейчас начинаем делиться с вами полезным материалом по курсу.

Введение

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

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



Именно поэтому я сейчас пишу это руководство. Мне хочется, чтобы вы столкнулись с той проблемой, с которой столкнулся я в свое время, но смогли достаточно быстро ее решить. К концу этой статьи я покажу вам как реализовать модель машинного обучения используя фреймворк Flask на Python.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии1

Истории успеха Kubernetes в production. Часть 10: Reddit

Время на прочтение5 мин
Количество просмотров11K
На прошлой неделе было объявлено о том, что отныне все новые сервисы Reddit запускаются в production на инфраструктуре, основанной на Kubernetes-кластерах. Эта значимая веха на пути миграции на K8s одного из популярнейших онлайн-ресурсов, и вот как к ней пришли…

Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии4

Информация

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