2015-12-14 6 views
2

В чем проблема?Безопасность и безопасность в Laravel 5.1

  1. Первичный ключ присутствует в Url поэтому данные для других записей можно легко увидеть, легко меняя URL.

  2. Rendered html содержит скрытое поле. Любой может легко изменить другие записи на основе этого скрытого поля.

Когда я правку. Мой Url выглядит ниже.

http://localhost/Category/3 

и Ниже тонированное Html

<form method="POST" action="http://localhost/UpdateCategory" accept-charset="UTF-8"> 

    <input name="_token" type="hidden" value="AmAXKmqtct6VOFbAVJhKLswEtds4VwHWjgu3w5Q8"> 

    <input name="CategoryID" type="hidden" value="3"> 

    <input required="required" name="Category" type="text"> 

    <input class="btn btn-success" type="submit" value="Update"> 

</form> 

Пожалуйста, предложить некоторые Url и форму безопасности в Laravel 5,1

+0

[Laravel имеет политики стараются использовать их] (http://laravel.com /docs/5.1/authorization) –

+1

Не используйте 'id', используйте что-то еще, скажите' uuid' –

+0

@VishalSh, который не имеет смысла погоды, используя 'id' или' uuid' –

ответ

0

Есть много worksaround, которые должны от отрегулирована нами, чтобы избежать таких инциденты.

Fix 1: Если вы не хотите, чтобы достигнуть пользователя, просто изменив URL-адрес

(то есть, непосредственно передавая идентификатор в URL)

Вы должны фильтровать запросы по

if($_SERVER['HTTP_REFERER']!='') 
{ 

} 
else 
{ 
exit; 
} 

вы должны иметь это в вашем Middleware или даже на ваш взгляд, если вы хотите

Fix 2: Никогда не беспокоиться о _token, которая видна, когда вы видите Исходной формы

Это просто маркер, который генерируется Laravel приложением, который должен определить, является ли запрос от прошедшего проверку подлинности источника или нет.

При редактировании маркер и передать форму вы наверняка получите CSRF Токен Несовпадение Исключение

Infact это одна из большой особенностью Laravel.

Интересный момент: Вы также можете найти что-то в заголовке браузера;)

Happy с помощью Laravel;)

Смежные вопросы