Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest framework和Django rest framework jwt API视图和验证授权头_Django_Django Rest Framework_Jwt - Fatal编程技术网

Django rest framework和Django rest framework jwt API视图和验证授权头

Django rest framework和Django rest framework jwt API视图和验证授权头,django,django-rest-framework,jwt,Django,Django Rest Framework,Jwt,我正在使用DRF和drfjwt来保护我的api。目前我有一些CBV是这样写的 class Organization(APIView): permission_classes = (IsAuthenticated,) @method_decorator(csrf_exempt, name='dispatch') class OfficeVisitsOverview(APIView): def post(self, request, *args, **kwar

我正在使用DRF和drfjwt来保护我的api。目前我有一些CBV是这样写的

class Organization(APIView):
    permission_classes = (IsAuthenticated,)
    @method_decorator(csrf_exempt, name='dispatch')
    class OfficeVisitsOverview(APIView):
        def post(self, request, *args, **kwargs):
            cursor = connection.cursor()
            (before, today) = getDateRange()
            cursor.execute("SELECT format(COUNT(*), 'N0') \
                            FROM Medi_OfficeVisit \
                            WHERE ( cast(VisitDate as date) BETWEEN '{0}' AND '{1}' ) \
                    ".format(before, today))
            data = dictfetchall(cursor)
            connection.close()
            return JsonResponse({"numberOfOVs": data[0][""]})

据我所知,APIView和权限类IsAuthenticated确保有一个授权令牌与请求头一起发送。您如何确定没有人修改JWT?我如何知道Django应用程序中的Secret_令牌每次都被用于解码/编码/验证/验证随每个请求一起接收/发送的JWT?这是否足以让我的API向公众开放?

经过身份验证只是确保当前request.user.Is\u authenticated为True。身份验证后端负责检查标头、验证令牌等,并设置User.is\u身份验证。这是您在设置rest framework jwt时在设置文件中添加的。这是一个完全为了安全身份验证而创建的应用程序,所以是的,这就足够了。但是您仍然需要注意其他方面,如SSL、sql注入等(搜索Django安全性)。
警告不要使用.format创建SQL查询,因为这是SQL注入的直接方法。如果以后使用一些用户提供的参数进行查询,您将处于危险之中。将参数作为第二个参数传递给cursor.execute或使用ORM来避免这种情况

经过身份验证只是确保当前request.user.Is\u authenticated为True。身份验证后端负责检查标头、验证令牌等,并设置User.is\u身份验证。这是您在设置rest framework jwt时在设置文件中添加的。这是一个完全为了安全身份验证而创建的应用程序,所以是的,这就足够了。但是您仍然需要注意其他方面,如SSL、sql注入等(搜索Django安全性)。 警告不要使用.format创建SQL查询,因为这是SQL注入的直接方法。如果以后使用一些用户提供的参数进行查询,您将处于危险之中。将参数作为第二个参数传递给cursor.execute或使用ORM来避免这种情况