为什么提供静态文件不安全

2023-12-31

这可能是一个愚蠢的问题,并且有一个明显的答案,但我正在测试 404 和 500 错误处理程序,这意味着我必须将 debug 切换为 False。我进入 Django 管理页面,注意到没有提供静态文件。

我知道它们应该通过 Apache 路由,因为通过 Django 提供静态文件是不安全的。但是,我不太明白为什么直接通过Django提供静态文件会存在安全风险?


以下是 Django 1.8 文档关于该主题的内容:

--insecure

Use the --insecure选项强制使用 staticfiles 应用程序提供静态文件,即使DEBUG设置是False。通过使用它,您承认它的效率极低并且可能不安全。这仅用于本地开发,切勿在生产中使用,并且仅在以下情况下可用staticfiles应用程序在您的项目中INSTALLED_APPS环境。

正如你所看到的,他们说“效率极低”和“可能不安全”。他们没有说“绝对不安全”或“不安全”。我认为他们暗示的是他们还没有对网络进行彻底的安全分析staticfiles应用程序及其与 Django 其余部分的交互。

对我来说,“效率极低”的部分应该足以阻止您提供静态内容。做得更好很容易......从collectstatic命令。


经过更多搜索,我找到了这个 Google 网上论坛帖子,以回应有人询问原因--insecure是没有安全感的。

来自:马尔科姆·特雷丁尼克

除非经过设计和审核,否则任何事物都不能被认为是安全的 安全。我们没有对静态文件服务器进行任何操作。可能不会 存在安全漏洞,但不应被视为安全 因为这不是设计目标。

例如,安全文件服务器需要检查资源 分配问题,因此服务非常大的文件不构成 拒绝服务攻击。这需要大量额外的代码 管道管理不值得投入到只是 出于发展目的。

...这支持我的解释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么提供静态文件不安全 的相关文章

  • 使用 Django ModelForm 上传个人资料图片

    我环顾过相关问题 但似乎没有一个答案有效 我正在尝试上传用户的个人资料图像并让它替换 覆盖 当前图像 保存图像后 我想将文件名更改为用户 ID 图像将以当前形式上传 但不会替换现有图像 例如 它将保存为 2 1 png class Phot
  • 带有 ManyToMany 和直通表的 Graphene-django

    我的应用程序有多个多对多关系具有贯穿模型像这样 class Person models Model name models CharField class Group models Model name models CharField m
  • HTML - 使用 JS 根据值更改文本颜色

    我正在使用 Django 创建一个以 HTML 形式显示的表格 我想当数字为负数时将数字的颜色更改为红色 当数字为正数时将数字的颜色更改为绿色 我知道我需要使用 JS 来实现这一点 但我无法让它工作 任何帮助将不胜感激 这是我的 Djang
  • GeoDjango:距离对象不可序列化

    我刚刚学习 geo django 我可以找出所有地方到一个点的距离 但是当我使用 values方法注释distance场 我得到 TypeError Object of type Distance is not JSON serializa
  • 如何将我自己的文件添加到 django 'static' 文件夹

    我读了django静态文件文档 https docs djangoproject com en 1 7 howto static files 并使我的 django 静态文件设置如下 设置 py PROJECT PATH os path r
  • Django 休息注册

    我正在使用 Django rest auth https github com Tivix django rest auth https github com Tivix django rest auth 在我的 django 项目中用于登
  • 正确使用 EncryptedSharedPreferences

    Android 最近发布了 EncryptedSharedPreferences 它自动加密 SharedPreferences 键 值数据 虽然这很好 但我发现我可以简单地连接 API 调用并检索解密的值 除了在调用 EncryptedS
  • 油猴安全性如何?

    我从未真正使用过greasemonkey 但我正在考虑使用它 考虑到 GreaseMonkey 允许您让互联网上的随机人改变您喜爱的网站的行为 它的安全性如何 他们可以窃取我的密码吗 看看我的私人数据 做我不想做的事吗 油猴安全性如何 Th
  • set-key-partition-list codesign 后仍提示密钥访问

    我正在导入一个PEM使用以下命令包含我的代码签名身份的公钥和私钥的文件 security import PEM FILE k Library Keychains login keychain T usr bin codesign T usr
  • 使用鼠标检测的反验证码

    我想知道是否可以为仅使用 javascript 的表单创建一个安全的人体检测机制 不使用验证码 来检测鼠标移动 因为 jquery 或操作系统代码都可以移动鼠标 我是这么告诉的 这是我的计划 使用 jQuery 我可以检测鼠标是否已移动 然
  • 限制 SQL Server 连接到特定 IP 地址

    我想将 SQL Server 实例的连接限制为特定 IP 地址 我想阻止来自除特定列表之外的任何 IP 地址的任何连接 这是可以在 SQL Server 实例或数据库中配置的东西吗 听起来像是你会使用Windows防火墙 http tech
  • Django 在 TabularInline 视图中禁用编辑(但允许添加)

    我想禁用编辑特定 TabularInline 实例中的所有对象 同时仍然允许添加并仍然允许编辑父模型 我有这个简单的设置 class SuperviseeAdmin admin TabularInline model Supervisee
  • django.core.exceptions.FieldDoesNotExist:模型没有名为 的字段

    经过一番谷歌搜索后只找到了一个死胡同的话题 https stackoverflow com questions 23356211 django south migration is throwing an error module obje
  • 模型字段的随机/非常量默认值?

    我有一个看起来像这样的模型 class SecretKey Model user ForeignKey User related name secret keys created DateTimeField auto now add Tru
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • Serializers.StringRelatedField 的读/写等效项是什么?

    在 Django Rest Framework 3 中 我想返回 pk 关系的 unicode 值 就像使用 serializer StringRelatedField 一样 但我也需要该值可写 StringRelatedField 是只读
  • Android - 在sqlite数据库中存储敏感数据

    我需要将敏感数据存储在 Android 应用程序的 sqlite 数据库中 我如何确定这些数据非常安全 我知道我可以使用密钥加密数据 但是我将该密钥存储在哪里 我也不想要求用户填写密钥 我只是希望它能够自行工作 因为我害怕逆向工程 所以我也
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 自定义代码访问安全属性

    我创建了以下属性 Serializable AttributeUsage AttributeTargets Class AttributeTargets Method AllowMultiple true Inherited true pu
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from

随机推荐

  • 如何为独立集群非hdfs模式启用spark-history服务器

    我已经设置了 Spark2 1 1 集群 1主2从 如下http paxcel net blog how to setup apache spark standalone cluster on multiple machine http p
  • android studio 中的 android TV 模拟器可以接收演员表吗?

    我目前正在尝试实施Cast SDK进入我的应用程序 我遇到了一些问题 其中最大的一个是我没有Chromecast 有没有办法测试我的代码以确保它在不拥有安卓电视 or a Chromecast 是否安卓电视模拟器 in 安卓工作室支持演员接
  • Javascript 与 Django?

    我知道以前有人问过这个问题 但我很难在 Django Web 应用程序上设置 JS 即使我正在阅读文档 我正在运行 Django 开发服务器 我的文件结构如下所示 mysite init py MySiteDB manage py sett
  • 让用户在扫描仪Java中仅输入整数

    我这里有一些问题 我希望用户只能输入整数 我已经尝试了很多代码 但仍然不起作用 顺便说一句 这是我的代码 import java util Scanner public class test public static void main
  • Function.const 的目的是什么?

    它是在ScalaDoc http www scala lang org archives downloads distrib files nightly docs library index html scala Function 24但没
  • 向 PageDown markdown 编辑器添加新按钮

    如何向位于以下位置的 PageDown markdown 编辑器添加新按钮http code google com p pagedown http code google com p pagedown 理想情况下 该按钮将创建一个类似于用于
  • 如何在NSIS中调用PowerShell

    我正在尝试在 NSIS 中运行 PowerShell 当我运行 NSIS 脚本时 include x64 nsh Name nsExec Test OutFile nsExecTest exe ShowInstDetails show Se
  • Android 列表视图过滤与重新填充

    经过一些建议后 我的应用程序使用媒体存储光标在加载时填充列表视图 这会将音乐链接到用户定义的文件夹 在大多数情况下 该文件夹将是他们存储的所有音乐 我有一个 Beta 测试人员 正在使用一台装有大约 10000 首歌曲的 Archos 平板
  • Pandas 根据索引名称突出显示行

    我一直在努力研究如何根据索引名称突出显示 Pandas 行的样式 我知道如何突出显示选定的行 但是当我必须根据索引突出显示时 代码不起作用 Setup df pd DataFrame key list ABCD value range 4
  • 熊猫断言_帧_等于错误

    我正在构建测试用例 我想比较 2 个数据帧 即使数据帧具有相同的列和值 assert frame equal 报告也不相等 列顺序不同 我尝试对列重新排序但没有成功 在我的测试用例中 我使用以下函数 testing assert frame
  • 适配器-适配器模式的任何真实示例[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想演示使用适配器模式 https en wikipedia org wiki Adapter pat
  • Spark中字符串类型的汇总统计

    Spark 中是否有像 R 中那样的汇总函数 Spark MultivariateStatisticalSummary 附带的汇总计算仅适用于数字类型 我有兴趣获取字符串类型的结果 例如前四个最大出现的字符串 groupby 类型的操作 唯
  • 可以在 Typescript 中向 Promise 添加取消方法吗?

    我想创建一个 QueryPromise 它只是一个带有取消方法的具体承诺 下面是它的使用方法 function runQuery text string QueryPromise return new QueryPromise resolv
  • Spring OAUTH:覆盖 CheckTokenEndpoint 'check_token?token=' 响应映射

    我想重写 CheckTokenEndpoint 以将我自己的自定义输出作为 Map 提供给资源服务器 我已尝试以下操作 但不起作用 为 oauth check token 引入新的自定义控制器 但 Spring 拒绝此自定义并注册自己的控制
  • 将 PagedList 与 ViewModel ASP.Net MVC 结合使用

    我正在尝试在 ASP Net 应用程序中使用 PagedList 我在 Microsoft 网站上找到了这个示例http www asp net mvc tutorials getting started with ef using mvc
  • 我的日志消息不会通过 proguard 配置被删除

    我正在开发我的 Android 应用程序 然后我通过以下方式启用并配置混淆器 步骤1 启用proguard In 项目 属性 I have proguard config sdk dir tools proguard proguard an
  • 使用 R,将可变行数的文本合并到单个文本元素中

    什么样的 R 代码可以将下面的模拟数据框中每个人的叙述条目合并到一个变量中 数据来自 Excel 电子表格 其中记录的叙述条目可以有 1 到 8 行 每个计时员的记录都以空行结束 假设这个数据框 dput 如下 gt df timekeep
  • 提前终止工作人员 puma 日志意味着什么?为什么会发生这种情况?

    对于我的 Elastic Beanstalk 实例 我得到了504每当我访问它时状态代码响应 当我跟踪日志时 我在 puma 应用服务器上看到以下日志 gt var log puma puma log lt 27240 Early term
  • 在 PL/SQL 中将 varchar2 转换为日期 ('MM/DD/YYYY')

    我需要将字符串从 varchar 转换为 MM DD YYYY 格式的日期 我的输入字符串是 4 9 2013 我的预期输出是 04 09 2013 即 2 位月份 2 位日期和 4 位年份 以 分隔 我有以下数据 DOJ varchar2
  • 为什么提供静态文件不安全

    这可能是一个愚蠢的问题 并且有一个明显的答案 但我正在测试 404 和 500 错误处理程序 这意味着我必须将 debug 切换为 False 我进入 Django 管理页面 注意到没有提供静态文件 我知道它们应该通过 Apache 路由