【问题标题】:How to block access to a static site?如何阻止对静态站点的访问?
【发布时间】:2019-12-12 22:42:54
【问题描述】:

我将在云托管服务提供商 Netlify 上托管一个静态网站(实际上只有几页)。这将是我的笔记,可能包含敏感代码和 API 密钥。我希望将其设置为只有我可以从 Internet 访问该站点,而其他人无法访问。如何阻止他人访问静态网站?

或者,如果我对 Github Pages 做同样的事情,是否可以限制那里的访问?

【问题讨论】:

    标签: html github-pages access-control netlify static-site


    【解决方案1】:

    您需要一种访问控制机制来保护您的笔记。

    • 如果您正在运行 Web 服务器进行托管,大多数 Web 服务器程序(Apache 和 nginx 是最流行的两个)都有内置的访问控制机制,请参阅 Carsten H 提供的链接或参阅Access Control with ApacheHow to Set Up Password Authentication with Nginx (Digital Ocean guide)

    • 如果您使用 Github Pages,可以进行访问控制,但有点棘手。您可以创建一个 Github OAuth 应用程序并要求人们使用您的 Github OAuth 应用程序进行身份验证。该应用程序将询问他们的用户名,并检查该用户名是否与允许的 Github 用户列表匹配(可能只是您的 Github 用户名)。如果用户名匹配,则提供静态内容,否则将用户重定向到 403 禁止页面。

    另请参阅github-heroku-attack-rabbits 项目页面,了解有关如何创建上述 Flask 应用程序的详细信息(使用 flask-dance 通过您的 Github OAuth 应用程序对用户进行身份验证)。 Flask 应用可以免费托管在 Heroku 上。

    关于公共/私人回购还有两点需要注意:

    • 如果您使用 Github Pages,包含您的笔记的存储库需要是私有的,否则您的笔记的内容将在公共存储库中(即使 Github Pages 静态页面具有访问控制层) .

    • 仅仅因为 repo 是私有的并不意味着它的 Github Pages 页面是私有的。默认情况下,公众可以访问/阅读私有 repo 的 Github Pages 页面。您可以设置访问控制机制来保护页面。

    【讨论】:

      【解决方案2】:

      您可以尝试加密路由。 Here,staticrypt 这个名字真的说明了一切(我有一个演示 here)。它允许您为网站的每个页面创建一个密码。它使用 AES-256 加密,所以就我而言,长密码就足够了。

      如果您不共享密码,您将是唯一可以查看该网页的人。

      【讨论】:

        【解决方案3】:

        这实际上是两个问题,最好单独提问。

        1. 这是一个常见问题,取决于您的服务器,例如对于 Apache,您可以在 this instructions

        2. 之后编辑您的 .htaccess
        3. 您需要在仓库创建过程中勾选私有仓库选项来创建私有仓库

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-05
          • 2021-12-26
          • 2017-12-02
          相关资源
          最近更新 更多