@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);
    }
}
  • Вопрос задан
  • 435 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
непонятно зачем UA

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

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

Похожие вопросы