@nioterzor

Хранение user-agent?

При авторизации пользователя в базу пишется его user-agent.
В среднем заговок обычно имеет меньше 200 символов, поэтому varchar(200) для него более, чем достаточно.
Предположим, атакующий пытается сломать систему и посылает user-agent длиной в 1000 символов.

Приложении это обрабатывает, просто сохраняя первые 200 символов из заголовка.
Это адекватный подход?
Где в таких случаях правильно хранить лимиты? Т.е. задавать в константах размеры данных в БД? В конфигах? Оставлять магические числа?

Я использовал такой подход, что в миграциях для БД использовались константы, заданные в коде, и к этим же константам привязывались валидаторы. Насколько это правильно?

Почти псевдокод

migration.php

use Constants;

class Migration {
    public function run() {
        $this->db->addColumn('table', 'column', Constants::USER_AGENT_LENGTH);
    }
}


Controller.php

use Constants;

class Controller {
    public function login(Request $request) {
         $userAgent = substr($request->header('user-agent'), 0, Constants::USER_AGENT_LENGTH);
    }
}
  • Вопрос задан
  • 382 просмотра
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
непонятно зачем UA

храните отпечаток тогда уж, вообще париться не нужно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы