【问题标题】:how to restrict form submission from certain url - Laravel如何限制从某个 url 提交表单 - Laravel
【发布时间】:2014-06-16 19:14:54
【问题描述】:

如果我想阻止来自以下 url 的表单提交,我该怎么做?

http://laravel.dev/iframe/123

此 url 将动态生成,我们不会在该页面上使用任何 javascript(只有用户创建的 JS 将在那里)阻止表单提交。

我需要保护接受输入的路线。例如:

  1. 注册用户(usersController@store)
  2. 或其他接受表格的路线。

他们有什么办法吗,我可以过滤某些路由以防止在 Laravel 中提交表单?

如何告诉 laravel 忽略来自某些 url 的表单提交?

【问题讨论】:

  • 您能提供更多关于用例的信息吗?例如,您会出于什么原因阻止 URL?
  • 我正在开发一个像 codepen、jsfiddle 这样的应用程序。要生成预览,我需要链接一个将生成输出的页面。我曾尝试使用 js 生成输出,但它对跨浏览器不友好。在 Iframe 中,Firefox(也可能是 IE)在页面加载期间没有用户交互就不会加载外部 css 或 JS 文件。但是,在 Chrome 和 Safari 中它工作正常。

标签: laravel laravel-4


【解决方案1】:

这可能是您正在寻找的:

$referer = Request::header('referer');
$restrictedList = Config::get('app.restricted'); // obviously change this to pull from your source

if(in_array($referer, $restrictedList))
    App::abort(403, 'Unauthorized');

【讨论】:

  • 好主意。我会试试这个。放置此代码的最佳位置是什么。我不想检查每条路线(只放和张贴)。谢谢。
  • 一个问题。 http://laravel.dev/iframe/123 将是动态的。 URL 类似于以下http://laravel.dev/iframe/xyzhttp://laravel.dev/iframe/9833sa。所以,不可能知道完整的网址。他们有什么方法可以从 url 获取路由名称吗?
  • 我会将它放在将处理它的控制器操作中。如果它跨越多个控制器,请为其创建一个过滤器并使用路由上的“之前”属性来运行过滤器。至于获取当前路由名称,请尝试使用 Route::currentRouteName() 或 Route::getCurrentRoute()->getPath(),具体取决于您的需要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 2011-12-10
  • 2015-01-12
  • 1970-01-01
  • 2020-10-18
  • 2017-09-21
  • 2020-03-02
相关资源
最近更新 更多