gpt4 book ai didi

php - 在 Laravel 中限制某些路由访问本地主机

转载 作者:可可西里 更新时间:2023-11-01 01:00:42 29 4
gpt4 key购买 nike

我的 Laravel 应用程序中的数据库是从另一个 Java 应用程序填充的。这两个应用程序(Java 和 Laravel)在同一台服务器上运行。 Java 应用程序向 Laravel 应用程序发出带有数据的 POST 请求。 Laravel 应用程序将发送的数据插入数据库。

问题是我找不到验证请求的方法。我希望 Laravel 应用程序接受该特定请求(例如,laravel.app/insert_data)仅当 源来自同一服务器

目前路径 laravel.app/insert_data 是公开访问的。如何限制为仅本地主机,以便我不接受来自未知主机的数据。

一种方法是,我可以从请求和过滤器中获取 HTTP header 。但我假设 Laravel 具有执行此类操作的内置功能。

最佳答案

你应该使用 laravel 过滤器。

一个可以这样定义:

Route::filter('localCallOnly', function()
{
//if IPs don't match - 404
if (Request::server('SERVER_ADDR') != Request::server('REMOTE_ADDR'))
{
return App::abort(404);
}
});

然后用于您想要的任何路线:

Route::get('insert_data', array('before' => 'localCallOnly', 'uses' => 'MyController@insertData'));

基本上这意味着“localCallOnly”过滤器必须应用于“insert_data”路由。因此,如果您的规则(相同 IP)与路由不匹配(​​ Controller 操作),则不会执行。

关于php - 在 Laravel 中限制某些路由访问本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27941356/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com