gpt4 book ai didi

web-services - 保护 JSON Web 服务

转载 作者:行者123 更新时间:2023-12-01 05:46:49 26 4
gpt4 key购买 nike

我有一个我只想为某些网站提供的 JSON Web 服务。这是一项使用 JSONP 通过 JavaScript 调用的服务。我将如何防止(或充其量使其更难)未经授权的网站访问它?要求用户/密码是行不通的,因为这在 JavaScript 中是显而易见的。

示例:我在 domain.com 的 web 服务提供天气信息,我只希望 website.com 和 pages.com 能够访问它。但是由于 Web 服务是通过 JavaScript 访问的,所以lazywebsite.com 可以只查看网站/网页的源代码并复制/粘贴其 JavaScript 代码。

到目前为止我的想法:

  • 使用 API key 并记录 HTTP_REFERER访问服务的位置。这并不理想,因为 HTTP_REFERER不可靠。
  • 让 website.com/webpage.com 使用我提供的算法在服务器端生成唯一的 key ,将其保存在 session 中,并将其用作访问 Web 服务的 key 。这样, token 只为该特定访问者注册,并且 JS 不能被复制/粘贴。然后问题转移到 website.com/webpage.com 保护他们生成唯一 key 的页面。

  • 有没有更好的解决方案?

    最佳答案

    没有完美的方法。

    如果您对安全性很认真,那么解决方案就是不要将您的 JSON 服务发布到世界各地。将其设为私有(private),并要求 website.com 和 pages.com 从他们的服务器向您的服务器发出私有(private)的后端请求以获取数据。然后,您可以验证您想要的所有内容,并且 secret 在其服务器代码中保持安全。基本上它是一个代理解决方案。 (一个很好的优势:您的 JSON 数据现在将与网站具有相同的来源,这意味着您不必进行 JSONP hack)。

    如果您对安全性不太认真,只想让它变得困难,那么您已经布置了最简单的事情。检查推荐人。该 header 可以被欺骗,但这很痛苦,希望大多数攻击者不会考虑尝试。还需要密码和/或 API key (它们是等效的),并在 Javascript 中对其进行混淆以使其更难获取。

    关于web-services - 保护 JSON Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1303643/

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