Словарь ИТшника

Словарь постоянно развивается и растёт. В этом словаре собраны термины и сокращения по программированию, безопасности и другим темам.

SOLID

Программирование

- Single responsibility

- Open–closed

- Liskov substitution

- interface segregation 

- Dependency inversion

в программировании — мнемонический акроним, введённый Майклом Фэзерсом (Michael Feathers) для первых пяти принципов, названных Робертом Мартином в начале 2000-х, которые означали 5 основных принципов объектно-ориентированных проектирования и программирования.

Sprint Backlog

Программирование

Sprint Backlog — это список задач, которые команда разработки выбрала из Product Backlog для выполнения в текущем спринте (обычно 1–4 недели). Это подмножество Product Backlog, но с гораздо большей детализацией.

Простыми словами: Sprint Backlog — это то, что команда планирует сделать прямо сейчас, в рамках текущей итерации (спринта).

Читайте также про Бэклог

SQL

Программирование

SQL (Structured Query Language или язык структурированных запросов) -декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.

В общем случае SQL (без ряда современных расширений) считается языком программирования неполным по Тьюрингу. Большинство производителей баз данных создали свои расширения для SQL, такие как Transact-SQL у Microsoft или PL/SQL у Oracle. 

С помощью SQL можно:

- создавать базы данных и таблицы

- читать добавлять, изменять, удалять данные

SQL Injection

Безопасность

SQL injection или внедрение SQL кода - один из распространённых и опасных способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.

За счёт внедрения своего SQL кода в код сайта хакер может получить возможность изменять, удалять или читать произвольные данные. 

Базы данных могут позволять работать с файловой системой и если права настроены небезопасно, то хакер сможет создавать или изменять файлы. Таким образом с помощью SQL инъекции можно произвести даже атаку deface

Внедрения SQL чаще всего связана с некорректной обработки входных данных, используемых в SQL-запросах. Нельзя напрямую добавлять к SQL запросам данные, которые передал в программу пользователь:

"SELECT * FORM Table WHERE Name = " + name;

Вместо конкатенации строк везде нужно использовать параметры:

"SELECT * FORM Table WHERE Name = @name";

Таким образом можно очень легко защититься от SQL Injection – везде использовать только параметризированные запросы. 

SRP

Программирование

Это сокращение может расшифровываться как Single Responsibility Principle или Принцип единой ответственности. Более подробно читаем здесь: Single Responsibility Principle

Typosquatting

Безопасность

Typosquatting — это форма атаки типа социальной инженерии и заключается в подмене названий легитимных сайтов, доменов, имён файлов и прочих адресов. Эта атака использовалась и для заражения через npm пакеты, когда создавались пакеты с похожими на популярные библиотеки именами.

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

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

XSS

Безопасность

XSS превращается в Cross-Site Scripting. Есть мнение, что для термина используют сокращение XSS, чтобы не было путаницы с каскадными таблицами стилей, использующими сокращение CSS.

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

Я эту атаку называю Frontend инъекцией, но это лично моё название и оно никак не является официальным. 

Смысл атаки в том, что инъекция происходит в код фронтенд технологий – HTML, JS или даже CSS. 

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

YAGNI

Программирование

You Aren't Gonna Need It - тебе это не понадобится. Я встречал несколько объяснений этого принципа – не создавать лишние функции, не проектировать лишнего. 

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

Если делать что-то заранее, то это трата время на разработку, отладку и излишнее усложнение проекта. 

Не делайте, что не нужно сейчас, вам это не понадобится в будущем. 

Бэклог

Программирование

Бэклог (Backlog) — это список задач, требований или элементов работы, которые необходимо выполнить в будущем. Обычно используется в управлении проектами, особенно в гибких методологиях.

В зависимости от контекста, backlog может быть:

Product Backlog (бэклог продукта) — список всех функций, улучшений, исправлений и требований к продукту. Его формирует и приоритизирует Product Owner.

Sprint Backlog (бэклог спринта) — набор задач из Product Backlog, выбранных для выполнения в течение одного спринта командой разработки.

Release Backlog (бэклог релиза) — задачи, запланированные для выпуска определённой версии продукта.

Голубая команда

Безопасность

Защищает, обнаруживает и реагирует на атаки. Более подробно читает про Blue Team

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне