在Laravel 4中直接访问停止方法

时间:2015-01-23 16:46:09

标签: php laravel-4 url-routing

我有一个方法,例如UserController @ getRead来读取所有或特定用户的详细信息。我有一个路由Route::controller('user', 'UserController');,以便在任何其他方法中,我可以使用以下方式获取有关用户的信息:

$request = Request::create('user/read/'.$userId, 'GET');
$user = json_decode(Route::dispatch($request)->getContent());

然而,这也意味着我可以浏览到'user / read / 1'并获取有关用户1的所有信息。这显然是一个安全漏洞,需要插入。如何在应用程序中访问UserController的read方法,而不是直接浏览到user / read?

1 个答案:

答案 0 :(得分:1)

您可以使用Request::path()获取输入浏览器的路径,然后进行测试以查看它是否为user/read。如果是中止,否则继续。这是我特定实例的代码:

if (stripos(Request::path(), 'user/read') !== false)
{
    App::abort(403, 'No direct access allowed');
}