Как опубликовать идентификатор объекта на контроллере MVC с ExtJs - PullRequest
0 голосов
/ 11 мая 2011

У меня следующая проблема: у меня есть представление (для редактирования объекта), у которого есть ViewModel, а в ViewModel I сознательно опущен Id объекта, который он представлял.Таким образом, ни один хакер не сможет изменить значения форм и опубликовать Id на сервере.Я все еще использую привязку модели в контроллере, где я, конечно, не включаю Id, но два уровня безопасности более безопасны, чем один.

Теперь я добавил кнопку удаления в представление.Функция на контроллере требует Id, и я вижу, что другие берут Id из модели (View), но для этого потребуется добавить его в ViewModel, что, я надеюсь, не понадобится.URL-адрес действия контроллера, который загружает окно редактирования, знает об идентификаторе.

Можно ли обойти это без добавления идентификатора в ViewModel?

handler: function(btn) {debugger;
                        var conn = new Ext.data.Connection();

                        conn.request
                        (
                            {
                                url: '<%= Url.Action("DeleteHourType") %>',
                                method: 'POST',
                                success: function(resp) {
                                    var url = JSON.parse(resp.responseText).redirect;
                                    window.location = url;
                                }
                            }
                        );
                        }

1 Ответ

2 голосов
/ 11 мая 2011

Нет, вам нужно где-то хранить идентификатор на клиенте.Вы всегда можете зашифровать значение, если вас это беспокоит.

Вместо того, чтобы избегать размещения идентификаторов в представлении, убедитесь, что любые действия, происходящие за сценой, выполняют проверки безопасности, чтобы пользователь a не мог редактировать материалы пользователя b.Безопасность из-за неясности, без отправки идентификатора клиенту, никогда не подходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...