我是现有Laravel 4.2项目的另一名开发人员。有一部分代码我不明白或者没有看到它的目的,所以我想看看它背后是否有原因。
添加了一个过滤器:
Route::filter('ajax', function () {
if (!Request::ajax()) {
return response('Bad request', 400);
}
});
将附加到所有AJAX路由:
Route::when('*-ajax', 'ajax');
我想知道这背后是否有目的?如果省略这会导致安全漏洞吗?为什么我需要检查请求是否是AJAX呼叫而不是其他呼叫?
答案 0 :(得分:1)
这是Laravel 4.2中的pattern based filter
星号用作通配符,将匹配任何字符组合。
因此,其中包含 -ajax 的所有路线都将被过滤
这也应与过滤器配对,以便路由与模式匹配的不同案例
Route::filter('ajax', function()
{
//
});
开发人员然后测试请求是否实际上是ajax请求。如果不是那么他们发送400错误。
你会检查它是否是一个ajax调用,因为很明显这些路由只是为了响应ajax请求,而不是当有人在浏览器中输入它时。