【问题标题】:Django REST Framework: Is the top-level JSON array on an empty ListView a security risk?Django REST Framework:空 ListView 上的顶级 JSON 数组是否存在安全风险?
【发布时间】:2021-05-13 01:37:08
【问题描述】:

当查询没有任何对象的 ListView 时,Django REST Framework 返回看起来是一个空数组。这是安全风险吗?

【问题讨论】:

  • 那么它还应该返回什么?有两种情况是有意义的:一个空列表,或者一个 404,但实际上两者都说明了完全相同的事情。
  • 我不是在问什么是有意义的。我在问 ListView 返回的顶级 JSON 数组是否存在安全风险。我问是因为我认为空数组是有意义的,并且我想确保我不会被黑客入侵。

标签: json django security django-rest-framework


【解决方案1】:

基于 OWASP 建议 you should always return a list with an object on the outside,但这似乎只是旧版浏览器中的一个漏洞,如本 post 中所述。

不过,最好遵守 OWASP 安全建议,尽可能返回嵌套在对象中的列表。

使用 Django DRF 的通用 ListModelMixin 视图,如果您包含所有分页设置,它将返回一个具有分页属性的对象,其中列表位于 results 属性下。

# settings.py
REST_FRAMEWORK = {
    ...
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 20,
}
# API response body

{
    "count": 12,
    "next": null,
    "previous": null,
    "results": [
        ...
    ]
}

【讨论】:

    猜你喜欢
    • 2011-03-31
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多