Безопасен ли мой метод?

Я создаю для нашего веб-приложения систему токенов. Как вы думаете, ребята, безопасен ли этот метод isWebTokenAvailable()?

/**
     * Checked if webToken is available {@link de.security.WebToken}.
     *
     * @param webToken to check if webToken is available.
     * @return true if webToken is available and if there is no available token then returns false.
     */
    public boolean isWebTokenAvailable(@NonNull String webToken) {
        return !em.createNamedQuery("validateToken").setParameter("token", webToken)
                .getResultList().isEmpty();
    }

о какой безопасности вы говорите?

Shanu Gupta 17.05.2018 11:12

@ShanuGupta, например, что, если я дам еще один токен String. Это может быть неправильно, но мой список не пустой, поэтому я могу вернуть истину.

Mert Yücel 17.05.2018 11:14

Как выглядит запрос validateToken.

Kayaman 17.05.2018 11:17

О какой безопасности вы здесь говорите, связанной с внедрением sql в запрос или аутентификацией на основе вашего токена?

Suvansh 17.05.2018 11:19

@Kayaman @NamedQuery(name = "validateToken", query = "select t from WebToken t where t.token = :token and t.expireDate > current_timestamp() ")

Mert Yücel 17.05.2018 11:20

@sCom меня беспокоит аутентификация на основе моего токена

Mert Yücel 17.05.2018 11:21

В вашем коде нет понятия токена неправильный. Есть просто токены, которые либо действительны (или доступны), либо нет.

Kayaman 17.05.2018 11:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Насколько я понял, если у вас есть проблемы с аутентификацией, вам просто нужно проверить следующие шаги:

  • Пока вы создаете токен, вам нужно установить в нем базовые вещи
    например userRole / id в соответствии с требованиями вашего приложения.
  • И вам нужно проверить пользователя, извлекая эту информацию из токена и проверка его с информацией в вашей базе данных.
  • Предоставление токена от db - это просто шаг, который вы делаете после аутентификации, это просто проверяет срок годности.

Другие вопросы по теме