Pen тестирование вашего приложения MVC


Вот некоторые общеизвестные методы обеспечения безопасности приложения MVC:

  • кодируйте выходные данные
  • параметризовать SQL
  • Проверьте ваш поиск назад и вперед
  • 1 способ хэш-паролей
  • блокировка учетных записей или ограничение попыток входа в систему
  • Используйте олицетворение на основе кода при обращении к файловой системе
  • доступ к SQL с заблокированным именем пользователя
  • Используйте медовые горшки или капчи для отправки форм для противодействия ботам

Если есть все, что я пропустил или неправильно оценил, пожалуйста, не стесняйтесь вносить свой вклад.

Какие другие методы / рекомендации вы используете или думаете о них, когда тестируете свое собственное программное обеспечение. Что вы делаете ,чтобы "пнуть шины", прежде чем принимать заявки в прямом эфире.

Какие службы тестирования пера или программное обеспечение вы используете, если таковые имеются?

3 3

3 ответа:

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

string[] allowedProperties = new[]{ "Title", "Description"};
UpdateModel(myObject, allowedProperties);

Или

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Include="Title,Description")] MyObject object )
{

}

Это, конечно, чтобы предотвратить попытки созданных запросов обновить / манипулировать вашими объектами способами, которые не были предназначены.

Ваш список хорош, хотя и несколько расплывчат. Например, md4-это односторонний хэш, но он крайне небезопасен, поскольку я могу генерировать коллизию на своем рабочем столе менее чем за день. sha256 с большим значением соли является более безопасным подходом. (Я знаю, что даже это описание неполное, не пламя)

Никогда не существует списка проверки безопасности catch all, который будет работать по всем направлениям. Определенные приложения могут иметь определенные уязвимости. Иногда эти недостатки могут быть логическими ошибками, которые на самом деле у меня нет классификации.

OWASP Top 10 уязвимостей веб-приложений является отличным ресурсом, который вы должны изучить. В частности, вы пропускаете XSRF в своем списке, что может быть разрушительной атакой. Существует большое количество атак на основе "слива", которые вы не перечислили. Например, что, если злоумышленник может пройти по пути, выбранному им для фопена? исследование в Scarlet рассматривает многие из этих атак на PHP.

Все ваши предложения применимы к любому веб-приложению, а не только к MVC-приложениям.

Конкретные предложения MVC были бы чем-то вроде "худые контроллеры, толстые модели".