Вредоносный ввод в ASP.NET MVC - PullRequest
       12

Вредоносный ввод в ASP.NET MVC

1 голос
/ 24 января 2010

У меня есть ASP.NET MVC 1.0 и приложение Entity Framework v1.

По умолчанию контент, отправленный пользователем, проверяется на вредоносный ввод. (См. здесь ). HTML кодирование данных, представленных пользователем, предотвращает атаки инъекций JavaScript. Entity Framework внутренне использует параметризованный SQL, который остановит внедрение SQL.

Достаточно ли этого? Что еще можно сделать, чтобы обнаружить и остановить вредоносный ввод (javascript / sql инъекция)?

Пожалуйста, сообщите.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 24 января 2010

Используйте атрибут Bind (Include ...) для предотвращения проблем с чрезмерной публикацией.

Для получения дополнительной информации перейдите по этой ссылке: http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html

Надеюсь, это поможет.

2 голосов
/ 25 января 2010

В дополнение к тому, что написал @ ali62;

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyAction( [Bind(Exclude="id")] User user )
{
    return View();
}

и

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyAction( [Bind(Include="name, email")] User user )
{
    return View();
}
2 голосов
/ 24 января 2010

Вы должны использовать ViewModels для представления и извлечения данных из представлений, а затем проверять их. Это будет проверка ввода.

Затем передайте данные из ViewModels в ваши DomainModels (EF). Затем вам следует проверить модель вашего домена, чтобы предотвратить нарушение правил домена.

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