Pull to refresh
0
0
Send message

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

Reading time8 min
Views68K

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

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

Читать далее
Total votes 109: ↑109 and ↓0+109
Comments27

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

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

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


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

Чтение: 7 минут
Read more
Total votes 6: ↑5 and ↓1+10
Comments6

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

Reading time3 min
Views12K
Есть типовая корпоративная задача — создать и развить практику тестирования для нескольких подразделений, продуктов или проектов. Как один из универсальных вариантов решения рассмотрим организацию отдела.

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

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

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

Reading time5 min
Views43K
Предлагаем вашему вниманию подборку материалов от python.org о том, с чего начать первые шаги в программировании.




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

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

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



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

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

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

Reading time4 min
Views11K
image

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

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

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

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

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

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

Reading time24 min
Views259K

Предисловие


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

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

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

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

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

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

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

Reading time25 min
Views28K


О чем это


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

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

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


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


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

Читать дальше →
Total votes 83: ↑78 and ↓5+73
Comments35

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

Reading time6 min
Views8.4K

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

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

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

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

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


Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments30

OWASP API Security Top 10 RC

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

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

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

Reading time2 min
Views51K

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


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


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

Читать дальше →
Total votes 76: ↑74 and ↓2+72
Comments44

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

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


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

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

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

Reading time4 min
Views115K


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

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

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

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

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

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

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

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

Reading time6 min
Views22K

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





Читать дальше →
Total votes 53: ↑49 and ↓4+45
Comments46

Сети Kubernetes: Ingress

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

Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments3

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

Reading time13 min
Views25K
Друзья, в конце марта мы запускаем новый поток по курсу «Data Scientist». И прямо сейчас начинаем делиться с вами полезным материалом по курсу.

Введение

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

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



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

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

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

Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments4

Information

Rating
Does not participate
Registered
Activity