30/30/40, а что измеряете? Штуки - тогда должна быть гарантия, что все задачи равнозначны. Время? тогда у вас прям прекрасное попадание оценка=реализация (сложно верится, но тогда можете свой подход раскрыть в ветке?), Сложность в story point / increment point / t-shirt?
Я понимаю что такое SQL-инъекция и как с ее помощью можно существенно «нагадить». И собственно DROP DATABASE, как Вы сказали, не самое страшное. Есть еще много способов, что помощи них и неправильно выставленных прав доступа можно натворить. Мое мнение — это правильное экранирование, которое и спасет собственно от инъекции. Что и имелось в виду, при ответе, что кавычки как минимум важны.
Как минимум плохим тоном является указание объектов базы данный без нужных кавычек ("" или `` или []). QueryBuilder нужен для упрощения задачи, но если не понимать что он делает, хотя бы азы, то смысла от его применения будет немного.
Имхо, лучше otp/totp для 2fa использовать, благо носителей уже вагон и маленькая тележка.
И для любого варианта прокатит (pass / key / key+pass) + otp
30/30/40, а что измеряете? Штуки - тогда должна быть гарантия, что все задачи равнозначны. Время? тогда у вас прям прекрасное попадание оценка=реализация (сложно верится, но тогда можете свой подход раскрыть в ветке?), Сложность в story point / increment point / t-shirt?
Все в основном модуле, без тестов, без конфигов, статику без nginx, без миграций а через синхронизацию - прям все как надо в прод (не надо)
А в чем открытость платформы выражалось, и в чем преимущества использования блокчейн платформы в вашем кейсе по сравнению с классическими решениями?
Что касается ветки «спора», то мы с Вами о разном спорили
WHERE «id» = 10 и WHERE «id» = '10'::integer
Пример 2:
WHERE `id`='asdasdasd\'; DROP… --'