Pull to refresh

Comments 21

Если взять Symfony2, который идет с Doctrine2 ORM, то можно написать точно такую же статью. %) Интереснее как раз таки было бы прочитать про JSON Hijacking и менее известные атаки, от которых пользователи ASP.NET MVC3 защищены по дефолту.
наверное, была потеряна частица «не» где-то в конце предложения, последнее где читал о JSON Hijacking была книга: «Palermo J. — ASP.NET MVC 4 in Action», старый вариант можно глянуть тут: json-hijacking-in-asp-net-mvc-2, вставка кода допиленного ActionResult растянула бы статью почти на страницу.
Скрытие информации


Ну, Security through obscurity никогда не было надежным подходом к защите, так что переоценивать скрытие заголовков тоже не стоит.
Это скорее не защита, а сокрытие используемых технологий, в последующем можно легко по логам определить, что кто-то пытается собрать данные о сайте и с большой вероятностью для взлома. Запросы вроде: /administrator/index.php или phpmyadmin подсказывают желания посетителя.
А это не Security, это уменьшение поверхности для атаки. Особенно от всяких автосплоитеров, которые ищут конкретные версии и долбят по ним известными багами. Понятно, что при целенаправленном взломе атакующий попробует всё, но автобот даже пробовать не будет если не найдет характерные признаки уязвимой системы. Так что имхо отказываться от данного сокрытия — тоже не стоит. Особенно учитывая как дешево оно делается =). Ведь в большинстве случаев — цель стоит — сделать взлом как можно более дорогим, чтобы он перестал быть экономически интересным. А абсолютно невзламываемые системы — это миф ;)
Не по основной теме, но все же — включите в проекте восстановление пакетов NuGet и их можно будет не таскать в архиве. При build они сами загрузятся из инета.
Спасибо за подсказку, действительно, архив получился довольно объемным для столь небольшого сайта, к сожалению, только вечером будет возможность перезалить.
Ещё касательно xss, на случай если всё-таки пролезет, нужно озоботиться тем, чтобы авторизационные куки имели включённым флаг HttpOnly.
Сложно представить человека, который не используется ORM при работе с БД, если он пишет проект с нуля и нет ограничений по технологиям

  1. я не использую ORM, так как СУБД, которую использую, и так уже объектная с наличием SQL и NoSQL возможностей;
  2. вопросы противодействия взлому страниц в этой СУБД тоже решены в рамках встроенного в неё веб-фреймворка: методы экранирования, приватные страницы, шифрование названий методов/строк/запросов, параметризованные запросы и т.д.
Спасибо, жирный шрифт показал несогласование слов в моем тексте, немного переписал предложение и сделал ссылку на комментарий.
Собственно сколько я не пытался что-то сделать так и не получилось, всему виной использование ORM, никаких конкатенаций строк там нету, данные передаются параметрами и экранируются.

Вы так говорите, как будто DbParameter изобрели только в ORM.
Согласен, они уже существуют очень давно, если не ошибаюсь, то с версии 1.0, но подходы вроде этого SqlParameter уходят в прошлое, ведя речь про ORM я говорил о данном сайте.
подходы вроде этого SqlParameter уходят в прошлое

Да ну?

Даже не считая того, что ORM не везде подходит, вы как-то забываете, что внутри вашего EF все тот же ado.net с теми же объектами.
В том виде как я привел пример, я считаю, что да. Конечно ORM — это не магия и одним из плюсов её использования, является возможность работы с Linq, а не писать запросы руками, после чего вставлять параметры, что уменьшит скорость разработки и время отладки.
* увеличит время отладки, есть большая вероятность допустить ошибку, например, в имени параметра.
>>так как в солюцию включены
Я бы рекомендовал поменять «солюция» на «проект»/«решение»/…
Как-то не благозвучно звучит, уж извините.
Тоже задумался об этом при написании, «решение» звучит как-то не однозначно, в рамках терминологии Visual Studio, «проект» — это не solution и может вводить в заблуждение, поэтому и написал «солюция», но всё же прислушаюсь к рекомендации и напишу проект, но в скобках оставлю ещё английский вариант.
«решение» звучит как-то не однозначно, в рамках терминологии Visual Studio
В русской VS2010 есть термины решение и проект, поэтому всё достаточно однозначно.
Почему бы не использовать устоявшуюся терминологию?
Я начинал с VS 6 и далее, все они были на английском, VS2010 видел на скриншотах где-то на хабре, как-то не доводилось работать с русской VS. Спасибо, добавил Ваш вариант в пост.
UFO just landed and posted this here
Согласен, полезная библиотека, она включена в ASP.NET 4.5. Спасибо за видео, как-то я его пропустил, Hanselman мой любимый докладчик )
Sign up to leave a comment.

Articles