gpt4 book ai didi

security - 在服务器级别与应用程序级别强制使用 SSL

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:46 26 4
gpt4 key购买 nike

我很确定以前有人问过类似的问题,但我没有找到任何问题(也许我使用了错误的术语)。

我有一个不安全的网络应用程序(内置于 Laravel)。前端和后端之间的所有通信都通过 http。现在,我想切换到 https。据我所知,有两种方法可以做到这一点。

首先是将服务器(托管应用程序的服务器)配置为仅接受 https 请求。如果我这样做,客户端和服务器之间的通信将被加密,我将不必更改我的应用程序中的任何内容(这是正确的吗?)。

第二种方法是将我的应用配置为仅接受 https 请求。如果我这样做,我将不得不对我的应用程序代码进行一些更改。

现在我想问一下,这两种方式都同样安全吗?首选哪种方式,为什么?

最佳答案

恐怕这里有几件事混在一起了。

您只能在您的网络服务器(Apache、Nginx 等)上启用 SSL。您需要服务器证书,并且必须配置 Web 服务器才能接收 https (ssl) 连接。至于具体如何做到这一点超出了这个答案的范围,但是您可以找到很多教程。您必须先执行此操作。

当您的 Web 服务器配置为支持 SSL 时,您希望您的 Web 应用程序可通过 HTTPS 而不是纯 HTTP 进行访问。目的是,一方面,不知道差异的用户仍然是安全的,另一方面,攻击者无法将用户连接降级为不安全的纯 HTTP。

现在至于您希望如何为您的应用程序强制执行 HTTPS,您确实有两种选择。您可以让您的 Web 服务器处理纯 HTTP 请求并将它们重定向到 SSL,这在 Apache 中都是一个简单的配置。和 Nginx .或者,您可以向您的应用程序添加重定向以处理通过普通 HTTP 访问它的情况,并使用类似 Location header 的内容将您的用户重定向到 HTTPS。

在安全方面,无论是网络服务器还是应用程序进行重定向并不重要,从客户端的角度来看,它们是相同的(实际上几乎无法区分)。选择您最喜欢的选项。例如,可能有可维护性原因来选择一个或另一个。 (你想在你的应用程序代码中维护重定向,还是让你的服务器操作添加重定向 header 等)

但请注意,无论哪种方式,您的应用程序都可能仍然容易受到名为 SSL Stripping 的攻击。 , 为了防止你应该总是发送 HSTS response header .

关于security - 在服务器级别与应用程序级别强制使用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40094048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com