sveltekit中的端点是否安全?



我不明白sveltekits。我把端点保存在/routes/api/中。它们对构建、生产中的用户是不可见的吗?在开发过程中,我可以通过浏览器或邮差访问它们。安全吗?

这是一个比您想象的更广泛的问题。首先要警告的是,我认为公平地说,没有任何已部署(即公开访问)的端点是"免于攻击"的;绝对意义上的。根据定义,如果一个端点是可公开访问的,那么潜在的攻击者可以探测它。这不是SvelteKit所特有的,但是,对于任何可公开访问的API都是如此。

SvelteKit端点是路由树的一部分这一事实并不会使它们比任何其他框架中的端点更安全。没有列出所有端点的索引页(除非你发布了一个!)或者除非你在服务器配置中不正确地设置了索引选项-例如,参见Apache的IndexOptions指令)。

然而,任何值得他/她的盐的开发人员也将能够通过他们的浏览器的开发工具的网络标签监控网络活动,使它相当容易找到你在你的应用程序中使用的端点。

最终,作为开发人员,保护您的端点不受未经授权的访问或使用是您的职责。您可以使用几个工具:
  • CORS配置将限制哪些网站/域名可以访问您的端点(尽管这最终可以通过代理API绕过)
  • "授权"头或查询参数可以帮助通过API密钥,JWT令牌等实现认证方案,但显然需要您的用户进行身份验证
  • 速率限制和查询深度限制(对于GraphQL端点)也是相关的主题
  • 通常关注的问题,如保护自己免受DB注入(消毒/规范化用户数据)等

然而,我必须再次强调,这些都不是SvelteKit所特有的。SvelteKit的端点是路由树的一部分,并没有使这些端点比其他框架更安全。

最新更新