【问题标题】:Allowing GET requests only from specified server IP仅允许来自指定服务器 IP 的 GET 请求
【发布时间】:2018-08-24 12:24:57
【问题描述】:

我想通过 api.php 更新数据库中的记录。我通过从另一台特定服务器向服务器上的 API 发送 GET 请求来做到这一点。

我尝试将 CORS 限制为仅适用于该特定服务器,但仍接受来自浏览器的 GET 请求。我还尝试设置一个条件以将服务器的 IP 与 API 中指定的 IP 匹配,如果它为假则中止。但是,我担心这是一个轻率的举动,因为我在这些类型的情况下经验不足。

我可以安全地限制 api 只允许来自这个特定服务器地址的 GET 请求吗?

系统架构

  • 网络服务器:Nginx
  • 应用语言:php(5.3)、javascript、html、css
  • 数据库:Mysql

【问题讨论】:

  • 旁白:GET 不应用于更新资源
  • 你可以。您可以做的事情有很多场景。现在,问题显然是——知识水平。在我看来,处理这些限制的最好方法是在网络服务器上(我个人的选择是nginx),而不是应用程序语言。您可以选择加入 IP 限制,您可以选择基于用户名/密码、承载令牌、api 密钥、公钥等对人员进行身份验证。我想您可以说您的问题非常广泛。不如先用网络服务器软件扩展问题?
  • 使用 IP 地址进行授权或身份验证总是有问题的。我建议您改为查看客户端证书。

标签: php security get webserver server-to-server


【解决方案1】:

解决方案是使用JSON Web Tokens

JSON Web 令牌是一种开放的行业标准 RFC 7519 方法,用于在两方之间安全地表示声明。

您可以在https://github.com/web-token/jwt-framework找到生成/检查令牌的 PHP 框架

【讨论】:

    猜你喜欢
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2017-02-05
    相关资源
    最近更新 更多