用于 ASP.NET Core 应用程序生产的 Kestrel 准备好了吗?

2024-02-26

我有一个在 asp.net core 2.0 中开发的角度应用程序使用的 api 它已部署在 IIS 中并配置为使用 kestrel。

我读到 Kestrel 在公开公开应用程序时并不安全等等。 真的吗? Kestrel 还没有准备好用于生产吗?或 kestrel 完全用于不同的目的,就像很少有博客所说的内部应用程序一样。


Yes, Kestrel 已做好生产准备 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-6.0并且受 .NET Core 支持的所有平台和版本支持,但如果您的应用程序可在公共网络上使用微软推荐 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/when-to-use-a-reverse-proxy?view=aspnetcore-6.0您将其与反向代理一起使用:

即使不需要反向代理服务器,使用反向代理服务器也可能是一个不错的选择。

您可以了解有关选项的更多信息在 MSDN 文档中,包括, and 除其他外。

使用反向代理的原因有很多,包括:

  1. 在同一 IP 和端口上运行多个应用程序
  2. 限制暴露的表面积
  3. 额外的配置和防御层
  4. 简化的负载平衡和 SSL 设置(例如,这些可以在反向代理处终止)
  5. 更好地支持静态文件、压缩等。

根据您的要求,上述不同方面对您来说可能或多或少重要。

例如,Kestrel 是非常轻量级的 Web 服务器,专门用于运行 ASP.NET Core 应用程序,但要做到这一点,它没有 IIS 或 Apache 之类的许多功能,而您可能会发现您需要这些功能。例如,处理图像、CSS 或 JS 等静态文件不需要由 ASP.NET Core 引擎处理 - 使用 IIS,您可以自动压缩这些文件并添加缓存标头以加快后续页面加载速度。同样,在请求到达处理器之前,IIS 可以处理重定向和路由。

从安全角度来看,您可以在请求到达 Kestrel 之前利用请求过滤(即使用的动词、路径等)、IP 过滤、身份验证等功能,而不必在您的系统中处理这些方面。代码。

值得注意的是,,文档更加具体:

如果将应用程序公开到 Internet,则必须使用 IIS、Nginx 或 Apache 作为反向代理服务器。反向代理服务器接收来自 Internet 的 HTTP 请求,并在进行一些初步处理后将它们转发到 Kestrel。

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

用于 ASP.NET Core 应用程序生产的 Kestrel 准备好了吗? 的相关文章

  • 如何检查 Azure Blob Storage V12 中是否存在容器

    以前使用 Azure Blob Storage SDK V11 时 如果您想要创建容器但不确定该容器是否存在 可以使用 CreateIfNotExists 然而在版本 V12 中 CreateIfNotExists 不再可用 我能从 Mic
  • 我应该如何合乎道德地处理用户密码存储以便以后进行明文检索?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 随着我继续构建越来越多的网站和 Web 应用程序 我经常被要求以某种方式存储用户的密码 以便在
  • 在 Razor Pages 中使用 @functions 块的错误和警告

    因为 helperASP NET Core Razor Pages 不再支持指令 我一直在使用 functions指令代替 functions void RenderTask Models Task task tr td class p c
  • ASP.NET Core MVC防伪

    尝试在核心 mvc 项目中打开防伪功能 但没有成功 做了什么 添加过滤器以自动检查每个 POST 请求的防伪令牌 services AddMvc o gt o Filters Add new AutoValidateAntiforgeryT
  • 正确使用 EncryptedSharedPreferences

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

    我从未真正使用过greasemonkey 但我正在考虑使用它 考虑到 GreaseMonkey 允许您让互联网上的随机人改变您喜爱的网站的行为 它的安全性如何 他们可以窃取我的密码吗 看看我的私人数据 做我不想做的事吗 油猴安全性如何 Th
  • 限制 SQL Server 连接到特定 IP 地址

    我想将 SQL Server 实例的连接限制为特定 IP 地址 我想阻止来自除特定列表之外的任何 IP 地址的任何连接 这是可以在 SQL Server 实例或数据库中配置的东西吗 听起来像是你会使用Windows防火墙 http tech
  • 遭受xss攻击后如何恢复站点?

    最近我正在研究XSS攻击以及它们对网站的破坏性有多大 让我惊讶的是 网络 even SO 充满了关于如何防止xss攻击但没有相关资源说明如何在网站受到 xss 攻击后恢复网站 我遇到过一些事情 比如 将备份网站代码上传回服务器 下载整个网站
  • aspnetcore 出现角度错误 NodeInitationException:节点调用在 60000 毫秒后超时

    我在用着yo generator aspnetcore spa一旦我运行应用程序 我就遇到了问题 处理请求时发生未处理的异常 NodeIncationException 节点调用在 60000 毫秒后超时 您可以通过设置更改超时持续时间 N
  • 忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目

    我有一个 ASP Net Core 2 2 Web API 在我的一个控制器操作中 我向 MySQL 数据库表添加了一堆行 我使用的是 Pomelo 例如 dbContext AddRange entities dbContext Save
  • Coldfusion 10、IIS 7.5 - 即使文件存在也收到 404

    即使该页面存在于磁盘上 我也收到 404 错误 我已经运行了 Web 服务器配置工具并重新启动了几次 cfm 文件的处理程序映射 配置工具似乎有效 C ColdFusion10 config wsconfig 1 isapi redirec
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • 注入的 HttpContext 始终为 null

    老实说 这太令人兴奋了 我无法让它发挥作用 无论注入到何处 上下文始终为空 我是否必须在 Startup cs 中添加上下文实例 如果是 怎么办 始发呼叫 services AddTransient
  • 用户 ASP.NET 运行于

    我有点困惑 ASP NET 如何在什么用户下运行 在 iis 7 5 和 6 0 上 一些我不清楚的用户帐户是 网络服务 IUSR AppPool 对不同用户的任何澄清以及安全考虑等都将不胜感激 总之 IIS 5 1 Windows XP
  • Swashbuckle 在 ASP.NET Core 中失败并出现 NotSupportedException 异常

    我跟着这个关于如何在我的 asp net core 2 2 项目中添加 swashbuckle 当我运行该项目时 我收到以下错误 处理请求时发生未处理的异常 NotSupportedException HTTP 方法 GET 和路径 id
  • 为什么 RFC 6797 禁止通过纯 HTTP 响应发送 Strict-Transport-Security 标头?

    在阅读 HSTS 严格传输安全 规范时 我看到了一条禁令第 7 2 节 https www rfc editor org rfc rfc6797 section 7 2禁止在通过 http 而不是 https 访问时发送标头 HSTS 主机
  • 无法在.net core中使用WCF WSHttpBinding

    我正在尝试将我的项目从 net 移动到 net core 我最初在 net 中使用 WCF WSHttpBinding 服务 但无法在 net core 中使用相同的服务 我尝试使用 BasicHttpBinding 在客户端与 WsHtt
  • 即使通过 ssl,在 ViewState 中存储信用卡和定价信息是否安全?

    我有一个带有私有属性的页面 该页面在视图状态中存储信用卡对象和购物车对象 以便我可以在回发期间维护对它们的引用 顺便说一句 涉及的页面将使用 SSL 这安全吗 我不会在视图状态中存储敏感信息 ever 通过这样做 您将安全性委托给浏览器的实
  • 如何使用 PHP 正确添加跨站请求伪造 (CSRF) 令牌

    我正在尝试为我网站上的表单添加一些安全性 其中一个表单使用 AJAX 另一个表单是简单的 联系我们 表单 我正在尝试添加 CSRF 令牌 我遇到的问题是令牌有时只显示在 HTML 值 中 其余时间 该值为空 这是我在 AJAX 表单上使用的
  • VSTS/TFS设置环境变量ASP.NET core

    我正在尝试使用 VSTS 将 ASP NET Core 应用程序部署到 IIS 并执行以下任务 然而 经过多次谷歌搜索和浏览 MS 文档后 我找不到为部署设置环境变量的方法 我在环境范围的发布定义中设置的变量未设置为环境变量 知道如何实现这

随机推荐

  • 有没有办法阻止iOS6杀死特定任务进程?

    我知道iOS有自己的任务管理方法 用户可能永远不需要关心进程后台 但我的要求是始终保持程序活着 在任何情况下都不能被杀死 有没有办法做到这一点 比如 锁定 或其他已经存在的功能 我使用的是iPad4 ios6 01系统 Thanks 不 那
  • Android 代码折叠 Switch 块

    在 Android Studio 1 0 2 下 有没有办法折叠 Switch 条件语句的代码块 我无法在线或在 文件 gt 设置 中找到如何执行此操作 选择代码块并右键单击以选择折叠代码块 它 说 Ctrl Shift Period 但
  • 在 XMLHttpRequest 中设置 Authorization 标头会更改 HTTP 动词

    今天我发现 XMLHttpRequest 的一个奇怪的行为 当我调用 GET 服务时 我发现如果我不设置授权标头 来自 Firefox 的请求是相同的 但是 如果我添加 Authorization 标头 Firefox 首先发送带有 OPT
  • IPython 笔记本在终端中显示输出

    我正在使用 IPython 笔记本 ipython notebook 但是当我尝试通过简单地给出变量名称并按 Shift Enter 来打印某些内容以获取任何输出时 而不是在笔记本 单元格旁边 中获取输出 我会在终端中启动它笔记本 我想查看
  • 在C中,只有一个元素的数组初始化是否经过特殊处理?

    在读的时候这个问题 https stackoverflow com questions 8060931 append to the beginning of an array 8061034 8061034我想测试 GCC 中的输入 看看会
  • clang 使用了错误的系统包含目录

    我的工作站是 RHEL 6 5 预装了 gcc 4 4 7 我们正在进行 C 11 工作 因此我们购买了 RedHat Developer s Toolset 存储库集 其中包括 G 4 8 2 这台机器上安装了两个版本的 G 但 4 8
  • 从可穿戴设备发送消息到手机,然后立即回复

    我今天一整天都在与 Android Wear Message API 作斗争 最终接受了我需要一些帮助 我的应用程序非常简单 移动部分由一个 MainActivity 除了显示 Hello world 之外什么也不做 和一个扩展服务组成可穿
  • 为什么不调用 doOnDispose?

    当创建这样的 Observable 时 public void foo Observable observable Observable fromCallable gt bar return doOnSubscribe disposable
  • 将片段中的文本提供给自定义 TextView

    如何在自定义 TextView 中设置构造函数以便能够从片段传递文本 换句话说 我很困惑如何将文本从我的片段 Fragment1 发送到自定义视图 View1 public class View1 extends TextView cons
  • 如何向 PWA 标题栏添加返回和刷新按钮

    我正在编写一个 PWA 应用程序 我想要的是back and refresh标题栏上的按钮 但我什么也没得到 更新 按钮应该由浏览器控制 而不是我的用户界面 The display清单文件中的属性必须是fullscreen or stand
  • 正则表达式随 Pip 安装但无法识别

    所以我尝试使用正则表达式解析文件中的数据 我已经成功安装了正则表达式 pip install regex Requirement already satisfied regex in usr local lib python3 8 site
  • Python/OpenCV — 匹配两幅图像中细菌的质心点

    我正在研究一种使用计算机视觉来匹配细菌质心的算法 由于我是计算机视觉的本科生和初学者 因此我没有专门针对此问题的代码 只是为了提供一些背景知识 我在 GUI 中使用了以下函数 bact 变量是指 Bacteria 对象 它存储每个细菌的 I
  • 如何在 php-cs-fixer 中使用其他文件扩展名,例如 .ctp?

    如何在 php cs fixer 中使用其他文件扩展名 例如 cakephp 模板 ctp 文件 我尝试过这段代码
  • Javascript 日期为该月的第二个星期一

    我正在与一个在每月第二个星期一开会的小组合作 他们希望他们的网站能够反映下一次会议的日期 我有本月第二个星期一显示的脚本 但我在使用 if else 语句时遇到了问题 我需要它来反映下一个即将发生的事件 而不仅仅是本月的日期 IE 本月的活
  • BlackBerry SQLite 数据库创建:“文件系统未就绪”

    我的应用程序从服务器获取数据并将其保存到 SQLite 数据库中 这在 9550 中工作得很好 黑莓风暴2 http en wikipedia org wiki BlackBerry Storm 2 模拟器 但是当我在任何其他模拟器中运行它
  • 如何解决“java.lang.OutOfMemoryError:超出GC开销限制”

    I read 这个堆栈溢出页面 https stackoverflow com questions 1393486 what does the error message java lang outofmemoryerror gc over
  • 将自定义 WSDL 绑定到现有 WCF 服务

    我使用 WCF 创建了一个 Web 服务 我不知道如何通过数据契约在 WSDL XSD 中设置约束和限制 如果我使用约束改进 XSD2 架构 然后将此自定义架构绑定到现有服务会怎样 如果是这样 我怎样才能使服务公开改进的 WSDL 否则 还
  • R按组计数元素的出现次数[重复]

    这个问题在这里已经有答案了 计算每个组中向量或数据帧上元素出现次数的最简单方法是什么 我的意思并不是只计算总数 正如其他 stackoverflow 问题所要求的那样 而是为每个连续发生的事件提供不同的数字 例如对于这个简单的数据框 但我将
  • jQuery Sortable - 拖放多个项目

    我有以下代码 它允许用户从一个列表拖放到另一个列表 现在 我如何允许用户选择并拖放多个项目 像这样的东西吗 http jsfiddle net T68Fn http jsfiddle net T68Fn 我尝试将 jsfiddle 中的代码
  • 用于 ASP.NET Core 应用程序生产的 Kestrel 准备好了吗?

    我有一个在 asp net core 2 0 中开发的角度应用程序使用的 api 它已部署在 IIS 中并配置为使用 kestrel 我读到 Kestrel 在公开公开应用程序时并不安全等等 真的吗 Kestrel 还没有准备好用于生产吗