JavaScript можно использовать в качестве инструмента для хакеров для атаки на сайты. Внедрение вредоносных сценариев JS (JavaScript) является одним из методов. Итак, давайте научимся предотвратить атаки JS -инъекций? Ниже приведено хорошее заявление, поделитесь с вами:
Что такое атака инъекции JavaScript?
Всякий раз, когда вы принимаете ввод контента от пользователя и Redisplay It, веб -сайт уязвим для атак JavaScript. Давайте посмотрим на конкретное применение, которое уязвимо для атак JavaScript. Предположим, что веб -сайт отзывов клиентов был создан. Клиенты могут посетить веб -сайт и ввести информацию об обратной связи о продукте. Когда клиент подает обратную связь, информация об обратной связи заносится вновь на странице обратной связи.
Веб -сайт отзывов клиентов - это простой веб -сайт. К сожалению, этот сайт уязвим для атак JavaScript.
Предположим, что в форму обратной связи клиента вводится следующий текст:
<Script> alert ("boo!") </script>
Этот текст представляет собой скрипт JavaScript, который отображает поле предупреждения. После того, как кто -то представляет этот сценарий в форму обратной связи с клиентом, сообщение Boo! Покажет атаку, когда кто -то посетит веб -сайт отзывов клиентов в будущем. Вы также можете подумать, что другие не смогут уничтожить его с помощью атак JavaScript.
Теперь ваша первая реакция на атаки JavaScript инъекции может состоять в том, чтобы игнорировать их. Вы можете подумать, что атаки впрыскивания JavaScript являются не более чем безвредными, и, к сожалению, хакеры саботируют, внедряя JavaScript в свои веб -сайты. Атака впрыска JavaScript может быть использована для выполнения атаки сценариев поперечного сайта (XSS). В перекрестной атаке сценариев конфиденциальная информация пользователя может быть украдена и отправлена на другой веб-сайт.
Например, хакеры могут использовать атаки JavaScript впрыскивания для кражи ценностей файлов cookie из браузеров других пользователей. Если конфиденциальная информация (такая как пароли, учетные записи кредитных карт или номера социального страхования) сохраняется в файлах cookie браузера, хакеры могут украсть ее, используя атаки JavaScript. В качестве альтернативы, если пользователь вводит конфиденциальную информацию в поле формы страницы, а страница будет скомпрометирована атакой JavaScript, хакер может использовать инъекционный JavaScript, чтобы получить данные формы и отправить его на другой веб -сайт.
Пожалуйста, обратите большое внимание. Серьезно относитесь к JavaScript в инъекционных атаках и защитите конфиденциальную информацию пользователей. В следующих двух разделах мы обсудим две методы, чтобы предотвратить атаку атаки ASP.NET MVC в инъекции JavaScript.
Метод 1: HTML -кодирование в представлении
Простой способ предотвратить атаки впрыскивания JavaScript - это кодировать данные, введенные любым пользователем веб -сайта в HTML, когда в представлении повторно играет данные.
Например: <%= html.encode (обратная связь.message)%>
Что означает использование HTML для кодирования строки? При использовании HTML для кодирования строк опасные символы, такие как <и>, заменяются HTML -сущностями, такими как <и>. Итак, когда строка <script> alert ("boo!") </Script> кодируется с помощью HTML, она будет преобразована в <script> alert ("boo!") </Script>. Браузер больше не выполняет сценарии JavaScript при анализе кодируемых строк. Вместо этого показывает безвредные страницы
Метод 2: кодирование HTML перед написанием в базе данных
В дополнение к использованию HTML для кодирования данных при отображении данных в представлении, вы также можете использовать HTML для кодирования данных перед отправкой в базу данных. Второй метод - это именно тот случай с контроллером в листинге 4 программы.
нравиться:
public actionResult create (String message) {// Добавить отзыв newFeedback = new обратная связь (); newFeedback.message = server.htmlencode (сообщение); newFeedback.entryDate = dateTime.now; db.feedbacks.insertonSubmit (newfeedback); db.submithses ();); // redirectreturn redirecttoAction ("index");}Обратите внимание, что значение сообщения кодируется HTML в операции CREATE () перед отправкой в базу данных. Когда сообщение вновь разыгрывается в представлении, сообщение кодируется HTML, поэтому JavaScript не выполняется в сообщение.
Суммировать
Часто люди предпочитают использовать первый метод, обсуждаемый в этом уроке, а не второй метод. Проблема со вторым подходом заключается в том, что кодируемые HTML данные в конечном итоге будут сохранены в базе данных. Другими словами, данные в базе данных будут содержать странные символы. Каково это недостаток в этом? Если вам нужно отобразить данные базы данных в форме, отличной от веб -страницы, вы столкнетесь с проблемами. Например, данные не могут быть легко отображены в приложениях Windows Forms.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.