我正在尝试创建一个REST API,用于在数据库中创建和检索文件。我遵循的教程使用以下方法检索单个文件:
$app->get('/file/:file_id', 'authenticate', function($file_id) {
global $user_id;
$response = array();
$db = new DbHandler();
// fetch file
$result = $db->getFile($file_id, $user_id);
if ($result != NULL) {
$response["error"] = false;
$response["id"] = $result["id"];
$response["file"] = $result["fileLocation"];
$response["status"] = $result["status"];
$response["createdAt"] = $result["created_at"];
echoRespnse(200, $response);
} else {
$response["error"] = true;
$response["message"] = "The requested resource doesn't exist";
echoRespnse(404, $response);
}
});
在这里,他们使用HTTP GET方法并在URL中指定文件ID,这样做安全吗?使用POST并在请求的正文中隐藏文件ID会更安全吗,还是他们不应该将文件ID放在带有GET请求的标头中?还是我不应该担心的事情?
在REST中,post方法用于创建新资源而不是获取它。Get方法用于获取资源,您需要指定ID以确定特定资源。通过URL传递它是一种常见的做法。您可以随机生成此类ID,以使其更难猜测。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句