Maks
Alexey Mishurovskiy
А кто как реализует CSRF у API (SPA)
Юра
Не надо делать просто авторизацию куками
Юра
Проверять реферер
The Ant
Alexey Mishurovskiy
зачем?
ПРоблема. есть приложения SPA есть регистрация пользователей. любой мамкин хакер берет скрипт и в цикле запускает запросы по API на регистрацию. тем самым может натолкать хоть 15кк юзеров.
Т.к. это регистрация, то соответственно нет возможности ее убрать в защищенную область под кредами
The Ant
что помешает хакеру добавить еще 1 запрос для получения токена?
Юра
CORS
The Ant
корс работает только в браузере :D
Юра
А spa не в браузере работают?
The Ant
ну так-то по апи можно долбится не тока со спашки. курлом например
Юра
Ну отправит и что
Юра
Он знает логин пароль?
Юра
Тогда ничего не помешает
The Ant
цсрф решит конечно проблему, но инчего не помешает ведь сначала получить токен, потом сделать запрос
Юра
Если токен в куке, тогда хакер может со своего сервера отправить запрос на апишку, кука автоматически полетит вместе с запросом
Юра
Ой
Юра
Не то
Юра
Хакер со своей страницы может отправить запрос на апишку
Юра
Можно проверять реферер я так понимаю чтобы исключить такой сценарий
Maksimus
Делай подтверждение регистрации - емейл или смс по телефону. Не подтвержденные аккаунты удалять через сутки например
Maksimus
Юра
Как ты подделаешь реферер если его браузер выставляет
Юра
Я не знаю какие браузеры не выставляют реферер
Юра
Как он получит доступ к куке?
Andrey
Юра
Что молча?
The Ant
курл может запоминать куки если что
The Ant
делаешь запрос на свой сервер, свой сервер делает запрос на целевое апи, с кукми и реферами
Юра
Речь идет про csrf атаку
The Ant
так она легко обходится
Maksimus
молча
Если Кука httpOnly - через браузер не получит доступ
Юра
The Ant
чойто
Юра
Потому что кука привязана к домену
The Ant
я могу в запросе хост отправить :D
The Ant
и еще там 1 заголовок... не помню точно )
Maksimus
чойто
Уточни проблему - хочешь предотвратить кучу фальшивых регистраций?
Maksimus
Или защита авторизованных юзеров?
Юра
Можно просто не хранить токен в куке чтоюы исключить такие проблемы
Maksimus
Тогда только подтверждение регистраций - емейл, смс - не подтвержденные аккаунты удалять
The Ant
ну и ratelimiter высталять для ипа, юзерагента
Maksimus
+ добавьте в форму регистрации Гугл капчу - снизите кол-во
Алексей Анатольевич
В куки никто не хранит важные для безопасности данные, нарушая это правило, вы сами себе создаёте проблемы на ровном месте. Используйте средства api и https
Alexander
Alexander
Cors совсем не про это
Katulos
Или виртуалки на локалхосте
Alexander
Katulos
Да я то как раз юзал fail2ban достаточно, чтобы больше не совершать этой ошибки
Katulos
Вижу у вас там "хайдоад" в анкете, а почему то про fail2ban пишете 😁
Alexander
Потому что речь про мамкиного хакера, а от него достаточно феилтубана
Alexander
Подкраватный сервер работает и не шуршит, перебанил полторы тысячи айпи за 5 минут. Про хайлоад тут вопросов не было.
Если у вас с каким-то инстурментом случился неудачный опыт, это не повод бегать по интернету и приставать к людям с глупыми вопросами.
slo_nik
Добрый вечер.
Подскажите, как решить проблему?
Обновил проект symfony 5.3.9
Появилась ошибка
Attempted to call an undefined method named "fetchColumn" of class "Doctrine\DBAL\Result".
Ругается на knp-components, вот на эту строку
https://github.com/KnpLabs/knp-components/blob/f06a6ebea71a91c8cd34213f9417004062133627/src/Knp/Component/Pager/Event/Subscriber/Paginate/Doctrine/DBALQueryBuilderSubscriber.php#L41
Alexey Mishurovskiy
Юра
Юра
Он вроде давно висит в депрекейтед
Юра
Если баг не у тебя то пиши ишью и отказывайся назад либо сделай форк и поправь
slo_nik
slo_nik
Именно в нём идёт обращение к несуществующему методу
Юра
Значит баг бадла что он зависит от версии симфы с которой не работает
Alexey Mishurovskiy
https://symfony.com/doc/current/rate_limiter.html кто то юзал?
Юра
Симфа?
Dmitry
slo_nik
composer why doctrine/dbal
Это я сделал, но всё равно не понятно, как выбирается пакет.
Выдача в консоли
doctrine/doctrine-bundle 2.4.3 requires doctrine/dbal (^2.9.0|^3.0)
doctrine/migrations 3.3.0 requires doctrine/dbal (^2.11 || ^3.0)
doctrine/orm 2.10.1 requires doctrine/dbal (^2.13.1 || ^3.1.1)
symfony/cache v5.3.8 conflicts doctrine/dbal (<2.10)
symfony/doctrine-bridge v5.3.8 conflicts doctrine/dbal (<2.10)
Последние два пакета не требуют dbal > 2.10, в проекте эти пакеты установлены, но всё равно dbal обновился до 3.1.1
Dmitry
Юра
Вопрос почему кмп бандл указал не поддерживаемую версию
Юра
Оно должно было ругнуться что не может обновить
slo_nik
Alexey Mishurovskiy
может просто не пользоваться KNP? )
Юра
У доктрины есть свой пагинатор
Юра
Я его юзаю