如何保护您的 php api

Posted

技术标签:

【中文标题】如何保护您的 php api【英文标题】:How to secure your php apis 【发布时间】:2018-07-01 12:54:45 【问题描述】:

我正在用 post 方法在 php 中编写一个 api。 但是,如果有人在邮递员中更改请求正文并发送一些不属于当前登录用户的数据怎么办。 例如:

如果我的 api 收到 book_id 来删除它。如果客户端发送了一个不属于这个客户端的 book_id 怎么办?

【问题讨论】:

阅读laravel.com/docs/5.5/authorization。 您向 API 添加一个检查,以防止用户删除不属于他们的数据。 【参考方案1】:

你可以在 Laravel 中使用 Passport 或 JWT 进行 API 认证

或者在Users表中添加api_token列,用户应该为每个请求发送他唯一的api_token,你根据它授权用户

【讨论】:

【参考方案2】:

防止这种情况的一种方法是创建一个中间件来检查 user_id 是否与用户身份验证相同。 RedirectIfAuthenticated 中间件将是了解如何执行此操作的好地方。你需要一些类似的东西:

if (auth()->user()->id === request()->input('user_id')) 
    // it's a good request

    return $request($next);


abort(403, "Unauthorized");

【讨论】:

以上是关于如何保护您的 php api的主要内容,如果未能解决你的问题,请参考以下文章

如何保护您的 API 免受了解您 API 的开发人员的攻击? [关闭]

如何保护与 Android 应用程序交互的 PHP JSON api 端点?

如何保护 REST-API?

Kong入门指南 - 保护您的服务

Kong入门指南 - 保护您的服务

如何保护网站代码 PHP/JS? [关闭]