Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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
Python 没有身份验证的Django Rest框架+;只得到_Python_Django_Rest_Django Rest Framework - Fatal编程技术网

Python 没有身份验证的Django Rest框架+;只得到

Python 没有身份验证的Django Rest框架+;只得到,python,django,rest,django-rest-framework,Python,Django,Rest,Django Rest Framework,我正在使用Django Rest框架为网页开发后端。该网页将是公开的,并且只从该服务获取信息。因此,我必须同时部署服务和网页 由于该网页是公共访问的(没有任何类型的登录),我可以避免设置SSL的东西。但是,默认情况下,DRF附带可浏览的API和登录字段。我知道我可以删除可浏览的API,但这足够了吗 例如,我的配置是: (卸下BrowsaBleapInderer) 以及: 我用的是CORS的东西 这是否足以避免不必要的登录尝试?是否有任何特定的方法来禁用此选项 我应该使用什么“默认权限\u类” 致

我正在使用Django Rest框架为网页开发后端。该网页将是公开的,并且只从该服务获取信息。因此,我必须同时部署服务和网页

由于该网页是公共访问的(没有任何类型的登录),我可以避免设置SSL的东西。但是,默认情况下,DRF附带可浏览的API和登录字段。我知道我可以删除可浏览的API,但这足够了吗

例如,我的配置是:

(卸下BrowsaBleapInderer)

以及:

我用的是CORS的东西

这是否足以避免不必要的登录尝试?是否有任何特定的方法来禁用此选项

我应该使用什么“默认权限\u类”


致以最良好的问候,感谢您的帮助

如果您有登录名,但没有SSL,那么您的用户在许多wifi和以太网网络上都容易受到凭据数据包嗅探的攻击。firefox插件可以轻易利用这种漏洞。由于用户重复使用密码的习惯,您最终可能会将他们的安全性泄露给更重要的网站。这是非常不幸的。如果用户重复使用他们的密码,这不完全是您的问题,但是SSL应该是用户的基本保护层

虽然可以使用带有Django Rest Framework(DRF)的Django模板作为后端,但并不限于将Django用于前端。无论如何,AngularJS有一个重要的学习曲线,但你不必限制自己让Django提供前端

至于删除DRF
BrowsableapInderer
,您将从中获得一些保护,但您确实需要通过适当的权限模型锁定API,因为攻击者可以轻松查看前端到后端生成的流量,然后操纵到后端的请求。因此,通过清除
BrowsableapInderer
,对手对您界面的可发现性不会显著降低。这只会模糊前端当前未使用的后端资源,也会让前端开发人员的生活更加痛苦

对于
DEFAULT\u PERMISSION\u类
,请查看。如果您只有两个用户组-登录/验证和未登录,那么这是一个很好的开始。如果您开始对不同的用户组具有每个模型的权限分支,那么
这是一个值得深入研究的好地方。

您好,谢谢您的回复!我没有使用Django作为前端,而是使用ExtJS,并从rest服务请求数据。我只是想知道是否可以删除任何类型的身份验证,因为该服务应该只用于获取数据。因为ExtJS调用是在客户端进行的,所以我也需要让该服务在线可用。如果该服务只是为了获取数据,我会做,也不会为用户提供登录方式。这将使未来对经过身份验证的写入(使用SSL:-D)敞开大门,即使它只是用户元数据,例如要在表上显示哪些列,或者它们的“仪表板”,或者您可以将站点扩展为用户可自定义的。
   'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer',
                                 'rest_framework.renderers.JSONPRenderer',
                                 'rest_framework_csv.renderers.CSVRenderer', )
CORS_ORIGIN_ALLOW_ALL = True

CORS_ALLOW_METHODS = (
        'GET',
        'HEAD',
        'OPTIONS',
)