无需用户名和密码即可保护API

时间:2019-12-14 12:10:09

标签: php api security oauth token

我已经在PHP 5.3中开发了一个简单创建(数据添加) API,

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

// get database connection
include_once '../config/database.php';

// instantiate product object
include_once '../objects/correction.php';

$database   = new Database();
$db         = $database->getConnection();

$correction = new Correction($db);

$data = json_decode(file_get_contents("php://input"));


    $correction->correctionByName           = $data->correctionByName;
    $correction->correctionDateTime         = date('Y-m-d H:i:s');
    $correction->correctionProject          = $data->correctionProject;
    $correction->correctionProjectVersion   = $data->correctionProjectVersion;


    if($correction->create())
    {
        echo json_encode(array("message"=>"Correction created successfully."));
    }
    else
    {
        echo json_encode(array("message"=>"Unable to create new Correction."));
    }

如果我通过localhost/MyProject/api/correction/create.php请求访问了该URL(post),则可以将数据添加到服务器。现在,一个主要问题是该API不安全,因为任何人都可以使用URL输入数据。

我想限制它,但不强制执行登录(用户名/密码)功能。实际上,此API将在不同的应用程序中使用。应用程序将使用此API发送数据。我想限制只有某些应用程序(或授权应用程序)发送数据。

我尝试了解OAuth,但我猜它需要用户名和密码。我可以请求令牌,但同样的问题,每个人都可以通过API请求令牌。

0 个答案:

没有答案