除了我自己的表单之外,我是否需要保护 Laravel ::post 路由免受任何类型的 post

Do I need to protect Laravel ::post routes from any kind of post besides my own form

如果我有两条路线:

Route::get('/setup', 'SetupController@index')
Route::post('/setup' 'SetupController@store')

SetupController@index 中我做了一些检查,例如我检查用户是否已通过身份验证。但是我检查了更多规则。

我是否也应该对 post 路由执行相同的检查?

有什么方法可以让某人在不先到达 get 路线的情况下到达 post 路线? (例如 post 在 url http://domain/setup?password=1234 中)

所以我想我想问的是:

我是否需要将这两条路由包装在一个中间件中并对它们中的每一个进行检查,或者足以检查 get 路由?

是的,您需要在中间件中包装两条路由。

有人可以打开任何页面(例如登录)并编辑 html 以制作指向 /setup 的表单,并在其中放入他想要的任何内容。

当然,有人需要了解表单的架构才能执行此操作,但这仍然存在风险。

一般情况下,需要为不同的url添加相应的中间件,对于get路由,可以使用ReplayAttackMiddleware进行不必要的攻击;而对于 post 路由,我认为你需要为不同的用户添加不同的角色,而 JWT 是一个非常好的身份验证工具。