в программировании — мнемонический акроним, введённый Майклом Фэзерсом (Michael Feathers) для первых пяти принципов, названных Робертом Мартином в начале 2000-х, которые означали 5 основных принципов объектно-ориентированных проектирования и программирования.
SQL (Structured Query Language или язык структурированных запросов) -декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.
В общем случае SQL (без ряда современных расширений) считается языком программирования неполным по Тьюрингу. Большинство производителей баз данных создали свои расширения для SQL, такие как Transact-SQL у Microsoft или PL/SQL у Oracle.
С помощью SQL можно:
- создавать базы данных и таблицы
- читать добавлять, изменять, удалять данные
SQL injection или внедрение SQL кода - один из распространённых и опасных способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.
За счёт внедрения своего SQL кода в код сайта хакер может получить возможность изменять, удалять или читать произвольные данные.
Базы данных могут позволять работать с файловой системой и если права настроены небезопасно, то хакер сможет создавать или изменять файлы. Таким образом с помощью SQL инъекции можно произвести даже атаку deface.
Внедрения SQL чаще всего связана с некорректной обработки входных данных, используемых в SQL-запросах. Нельзя напрямую добавлять к SQL запросам данные, которые передал в программу пользователь:
"SELECT * FORM Table WHERE Name = " + name;
Вместо конкатенации строк везде нужно использовать параметры:
"SELECT * FORM Table WHERE Name = @name";
Таким образом можно очень легко защититься от SQL Injection – везде использовать только параметризированные запросы.
Это сокращение может расшифровываться как Single Responsibility Principle или Принцип единой ответственности. Более подробно читаем здесь: Single Responsibility Principle.
XSS превращается в Cross-Site Scripting. Есть мнение, что для термина используют сокращение XSS, чтобы не было путаницы с каскадными таблицами стилей, использующими сокращение CSS.
Это тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода, который будет выполнен в браузере пользователя и взаимодействии этого кода с веб-сервером злоумышленника.
Я эту атаку называю Frontend инъекцией, но это лично моё название и оно никак не является официальным.
Смысл атаки в том, что инъекция происходит в код фронтенд технологий – HTML, JS или даже CSS.
С помощью внедрения в JavaScript хакеры могут воровать сессии или обходить какие-то ограничения на сервере, чтобы реализовывать другие атаки на сервер.
You Aren't Gonna Need It - тебе это не понадобится. Я встречал несколько объяснений этого принципа – не создавать лишние функции, не проектировать лишнего.
Когда программисты начинают писать новый код, то могут на всякий случай создать какой-то функционал. Не делайте то, что не нужно сейчас, потому что не факт, что это понадобится в будущем. В будущем могут быть совершенно другие требования.
Если делать что-то заранее, то это трата время на разработку, отладку и излишнее усложнение проекта.
Не делайте, что не нужно сейчас, вам это не понадобится в будущем.
Двухфакторная аутентификация (2FA) — это метод безопасности, требующий двух разных факторов аутентификации для доступа к системе. Это тип многофакторной аутентификации (MFA).
2FA используется для защиты учетных данных пользователей и ресурсов, к которым они могут получить доступ. Он помогает предотвратить кражу, уничтожение или доступ к записям данных киберпреступниками.
Примеры двухфакторной аутентификации:
- Доверенный номер телефона: пользователь получает по СМС код проверки.
- Приложение для смартфона: пользователь одобряет запрос аутентификации перед входом в систему с помощью приложения для смартфона.
- Биометрия: пользователь использует биометрический фактор, такой как отпечаток пальца или сканирование лица.
Двухфакторная аутентификация затрудняет злоумышленникам доступ даже если он украдёт пароль.
Роберт Сесил Мартин (Robert Cecil Martin), также известный как Дядя Боб (англ. Uncle Bob) — американский инженер и программист, консультант и автор в области разработки ПО.
В 2001 он организует встречу группы, которая создала гибкую методологию разработки из техник экстремального программирования.
Автор книг:
- Быстрая разработка программ. Принципы, примеры, практика
- Чистый код. Создание, анализ и рефакторинг
- Идеальный программист. Как стать профессионалом разработки ПО
- Принципы, паттерны и методики гибкой разработки на языке C#
- Гибкая разработка программ на Java и C++. Принципы, паттерны и методики
- Чистая архитектура. Искусство разработки программного обеспечения
- Чистый Agile. Основы гибкости
- Идеальная работа. Программирование без прикрас
MFA или Multi-factor authentication – это метод контроля доступа к чему-либо в котором пользователю для получения доступа к информации необходимо предъявить более одного «доказательства механизма аутентификации». В качестве проверки аутентификации используется не только пароль, но и одно/несколько из следующих пунктов:
- Знание — информация, которую знает субъект. Например пароль, ПИН-код, код, контрольное слово и так далее.
- Владение — вещь, которой обладает субъект. Например, электронная или магнитная карта, токен, флеш-память.
- Свойство, которым обладает субъект. Например биометрия, природные уникальные отличия: лицо, отпечатки пальцев (папиллярные узоры), радужная оболочка глаз, последовательность ДНК.
Один из принципов SOLID и это первая буква S в названии принципа - Single Responsibility Principle. Более подробно читаем в Single Responsibility Principle.