【问题标题】:Laravel api block browser/postman accessLaravel api 阻止浏览器/邮递员访问
【发布时间】:2020-05-15 21:03:06
【问题描述】:

我刚刚在laravel 上完成了api,它在front-end 上完美运行,但我想阻止api 通过浏览器或邮递员等访问,我只想从POSTGET我的前面。

例如,如果有人在浏览器中运行 post 请求:

如果在浏览器中运行获取请求(需要身份验证):

另外,如果有人运行此 url api.mywebsite.com,请参阅 Laravel 介绍页面,并且我不想向用户显示,我该如何防止这种情况发生?

最后一件事,如果用户在邮递员中运行postget 请求,它可以工作,我只希望它与我的域一起工作。我正在使用this CORS 中间件。

  1. 如何防止用户通过浏览器/邮递员访问get/post请求?
  2. 如何将 api 限制在我的域名上?

【问题讨论】:

  • 我要做的是,添加一个中间件,它将测试请求类型。如果请求不是我计划的请求,那么它将重定向到 page404 之类的页面
  • 使用反向代理,将请求发送回您的前端服务器并将请求从网络服务器路由到您的 API 服务器
  • @sheelpriy 任何示例或文档?
  • CORS 不是导致服务器阻止请求的机制。请参阅 stackoverflow.com/a/42708766/441757stackoverflow.com/a/45069745/441757。 CORS 是一种防止浏览器阻止访问响应的方法。

标签: php laravel rest postman


【解决方案1】:

移除Laravel欢迎页面:

前往

route/web.php,评论此行:

return view('welcome');

或替换为:

return abort(404);

或者你可以用自己的路由删除,它返回相同的404


要删除路由login,你需要去:

app/Http/Middleware/Authenticate.php

查找redirectTo函数并将其替换为:

protected function redirectTo($request)
{
    if (! $request->expectsJson()) {
        return abort('404');
    }
}

或者真的 redirect 到你的 login 页面,等等。


然后转到 config/cors.php 并将您的替换为:

'allowed_origins' => ['http://yourwebsite.com'],

无需担心postman,但如果您想避免人们直接向您的api 提出请求,您需要使用api_token


哦,我忘了你的另一个问题,毕竟,你不应该在浏览器上看到任何这些错误,除非你忘记在.env上设置这些错误:

APP_ENV=production
APP_DEBUG=false

【讨论】:

    猜你喜欢
    • 2019-02-24
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 2020-05-26
    相关资源
    最近更新 更多