【问题标题】:Laravel Restfull Api SecurityLaravel Restful API 安全性
【发布时间】:2020-04-28 16:52:46
【问题描述】:

对我来说需要什么来阻止外人。我只是想响应来自我定义的那些地方的请求。

示例:允许的应用程序和网址

com.x.app
com.y.app
--------- AND ---------
http://www.x.com

有没有简单的方法来做到这一点?最好的问候!

【问题讨论】:

  • 这能回答你的问题吗? Whitelist Domain Authentication Laravel
  • 我们可以解决web的例子。但它适用于移动应用程序吗?
  • 你这是什么意思? “用于网络”和“移动应用程序”有什么区别?请将有关此问题的所有必要信息添加到问题中
  • 一个是url,一个是包名。

标签: php laravel security


【解决方案1】:

你应该清楚地解释你想要什么。基本上,要执行此类操作,您需要检查您正在接收的 HTTP 标头的 $_SERVER['HTTP_USER_AGENT'] 属性并过滤 AndroidiPhone 关键字。

【讨论】:

  • 你确定吗?如果您使用任何类型的“iPhone 关键字”,其他应用程序很容易使用此“关键字”并在未经许可的情况下访问 API
  • 如果他的问题不清楚,你需要在他的问题下的cmets中询问详细信息或投票关闭它为不清楚。如果没有详细信息,请不要回复。 How to Answer
【解决方案2】:

在 Laravel 中构建 RESTful API 的最佳方式是通过 routes/api.php

当你给这个文件添加路由时,比如:

Route::get('/users/list', 'ApiController@userList');

这意味着当你转到yourwebsite.com/api/users.list时,它将在给定的控制器中执行给定的方法。

就验证 API 用户而言,您可以将用户及其 API 密钥存储在数据库中,并在他们到达方法之前使用魔术构造方法对其进行验证。

public function __construct() {
  $inputKey = filter_input(INPUT_GET, 'key'); //filter input the way you want
  if(!isCustomer($inputKey) { //validate api keys in your app somehow
     die('Authentication Failure'); //kick the freebooters
  }
}

【讨论】:

  • 我为用户制作代币。我需要在应用程序中产生额外的内容吗?
猜你喜欢
  • 2018-07-27
  • 2017-11-12
  • 2012-09-19
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 2015-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多