Нужно ли мне защищать маршруты Laravel :: post от любых сообщений, кроме моей собственной формы

Если у меня два маршрута:

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

В SetupController@index я провожу некоторые проверки, например, проверяю, аутентифицирован ли пользователь. Но есть еще несколько правил, которые я проверяю.

Следует ли мне выполнить те же проверки и для маршрута post?

Есть ли способ попасть в этот почтовый маршрут, не пройдя сначала get? (например, размещение в url http://domain/setup?password=1234)

Итак, я предполагаю, что я спрашиваю:

Нужно ли мне заключать два маршрута в промежуточное ПО и проверять каждый из них, или этого достаточно для проверки маршрута get?


person Victordb    schedule 05.10.2018    source источник


Ответы (2)


да, вам нужно обернуть оба маршрута в промежуточное ПО.

кто-то может открыть любую страницу (например, войти в систему) и отредактировать html, чтобы создать форму, указывающую на /setup, и поместить в нее все, что он хочет.

Конечно, для этого нужно знать архитектуру формы, но, тем не менее, это риск.

person N69S    schedule 05.10.2018

Обычно вам нужно добавить соответствующее промежуточное ПО для разных URL-адресов, для маршрута получения вы можете использовать ReplayAttackMiddleware для ненужных атак; а для почтового маршрута, я думаю, вам нужно добавить разные роли для разных пользователей, а JWT - действительно хороший инструмент для аутентификации.

person yusher    schedule 05.10.2018