Как запретить почтовому инструменту доступ к API Django rest? и может получить доступ только из собственного приложения - PullRequest
0 голосов
/ 08 марта 2020

У меня есть такой API-код

class TEST(APIView):
def post(self, request):
    try:
        taxdtl = views
        jsondata = json.loads(request.body.decode('utf-8'))
        request.session['Entity_gid'] = 1
        lj_sales_fav_pdct = taxdtl.sales_fav_product(request)
        test = lj_sales_fav_pdct.content
        return Response(json.loads(test))
    except:
        return Response({"MESSAGE": "ERROR_OCCURED"})

, и у меня есть такой токен аутентификации

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
    'rest_framework.permissions.IsAuthenticated', )

}

Но когда пользователь может в режиме отладчика F12 может видеть все данные и видеть все данные, включая токен.

Предложите мне, как это предотвратить.

API должен быть доступен только из представлений Python веб-сайта Native, а не из AR C или POST Man, как инструмент.

1 Ответ

1 голос
/ 09 марта 2020

Я думаю, что на самом деле невозможно сделать именно то, что Вы просите.

Когда вы запускаете сервер с бэкэнд-приложением, и это приложение может иметь внешний доступ, «каждый» может отправить запрос и, если он действителен, получить ответ (инструмент POST Man, пользовательские сценарии и т. Д. c.). Также все данные хранятся в заголовках, локальном хранилище и т. Д. c. будет виден всем, кто нажмет f12: /.

Что вы можете сделать:

  • использовать однократный токен аутентификации
  • использовать токен авторизации с очень коротким использованием время
  • шифрование данных внутри токена аутентификации
  • запуск всего локального

Cheers

fenrir

...