【发布时间】:2015-06-26 13:58:38
【问题描述】:
我正在尝试创建一个 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 请求的标头中?或者这不是我应该担心的事情?
【问题讨论】: