
Загрузка фрагмента html-документа
Пусть требуется загрузить фрагмент кода на HTML. Оьтвет сервера будет размещаться в свойстве responseText. Если передача больших объемов данных на сервер не требуется, то можно применить метод GET.
Загрузка xml-документа
В данном случае появляется возможность работать с полученным кодом, преобразованным в объектную структуру и работать с ней методами DOM. Для этого необходимо обратиться к свойству responceXMLобъекта XMLHttpRequest после получения ответа от сервера. В отличие от ранее приведенного случая это свойство имеет тип DOMDocument( а не String ) и реализует все основные методы документа.
Загрузка фрагментов программы в формате jason
Данные в формате JASONсчитываем в виде строки, создаем объект и работаем с ним как с обычным JavaScript-объектом/ Данные на сервер можно передавать и методом GETи методом POST
Приведите пример загрузки фрагмента HTML-документа с сервера!
Пусть в качестве ответа сервер формирует фрагмент HTML-кода, с разметкой переключателей для выбора цвета заказываемого товара с учетом текущего остатка на складе
<input type="radio" name="color" value="13" checked>Оливковый<br>
<input type="radio" name="color" value="20">Индиго<br>
Полученный с Веб-сервера фрагмент присваивается свойству innerHTMLHTML-элемента FIELDSETс атрибутом id="selectColor"
xmlHttp.open("GET", "my_ajax_url.php", false); // используется запрос с ожиданием ответа
xmlHttp.send(null);
varselectColorVar = document.getElementById("selectColor");
selectColorVar.innerHTML = xmlHttp.responseText; // замещаютсявсевнутренниеэлементы // объекта c id="selectColor"
После выполнения представленного кода элемент FIELDSETбудет содержать кнопки-переключатели
<fieldset id="selectColor">
<input type="radio" name="color" value="13" checked>Оливковый<br>
<input type="radio" name="color" value="20">Индиго<br>
</fieldset>
Приведите пример формирования ответа в PHP, в котором передается html-документ!
<?php
header("Content-type: text/plain; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
........// формирование строки или строки с тегами, в последнем случае вместо text/plain
........// необходимо указать text/html
echo "Ура получилось, - обычная строка или HTML!<br>";
?>
Приведите пример загрузки фрагмента HTML-документа с сервера!
xmlHttp.open(("GET", "my_ajax_responce.xml", false); // используется запрос с ожиданием
xmlHttp.send(null);
var products = doc.getElementByTagName("product");
var id = products[0]. getElementByTagName("id")[0].firstChild.data;
Приведите пример формирования ответа в PHP, в котором передается xml-документ!
<?php
// Даем знать клиенту, что возвращаем XML
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
// формируем данные в XML-формате ….
?>
Приведите пример загрузки фрагмента программы в формате JASON с сервера!
Пример -методомGET
// Имеемобъект
var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin",
"email": "brett@newInstance.com" }, ... ] };
// преобразуем объект в строку и отправляем на сервер присоединив строку к URLи разместив ее как значение, например, параметра "jstring":
varurl = "OurScript.php?jstring=" + escape(people.toJSONString());
request.open("GET", url, true);
request.onreadystatechange = updatePage; // указалифункциюобработчикответа
request.send(null);
Пример -- методом POST
varurl = "OurScript.php?timeStmp=" + new Date().getTime();
request.open("POST", url, true);
request.onreadystatechange = updatePage;
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(people.toJSONString());
Приведите пример формирования ответа в PHP, в котором передаются данные в формате JASON!
Данные с сервера можно передавать как обычную строку, представляющую формат JASON. Для кодирования и передачи берется объект, массив или строка и к ним предварительно применяется функция json_encode() или метод $json->encode().
Основные возникающие трудности могут быть связаны с кодировкой данных на сервере, что зависит от содержимого конфигурационных файлов.
Перечислите основные опции функции $.ajax() и приведите пример записи опций!
Основные опции этой функции следующие
type - тип запроса - "GET" или "POST"
url - URL
async - логическое значение, по умолчанию, все запросы отсылаются асинхронно (т.е. значение true)
contentType - строка, по умолчанию: «application/x-www-form-urlencoded»
data - Данные, которые отсылаются на сервер, Для запросов типа GET данные прикрепляются к URL
success - Функция, которая исполняется всякий раз после удачного завершения запроса AJAX.
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );}
});
Для чего используется функция $.get, перечислите параметры этой функции!
Показывает в сообщении результат запроса страницы test.php (HTML или XML, в зависимости от передачи с сервера). Все параметры кроме URL - необязательны.
$.get("test.php", function(data){
alert("DataLoaded: " + data);
});
Что выполняет метод - jQuery.getScript( url, вызов ), опишите и приведите пример!
Загружает и исполняет локальный файл JavaScript используя метод GET.
Загружает JavaScript файл test.js и исполняет его, показывая сообщение, когда выполнение окончено.
$.getScript("test.js", function(){
alert("Script loaded and executed.");
});
Лекция 24
Перечислите наиболее опасные виды сетевых атак!
Фишинг (phishing) - вид атаки, который начинается с рассылки почтовых сообщений, содержащих ссылку на известный ресурс (или имитирующий такую ссылку). Дизайн веб-страницы обычно копируется с воспроизводимого ресурса. На фальсифицируемой странице может быть, например, написано, что банк, где вы имеете счет, проводит акцию по проверке безопасности доступа, при этом предлагается ввести номер вашей кредитной карты и PIN-код.
IDN-атаки - Одним из возможных средств атак является использование IDN (International Domain Name). Дело в том, что в системах, поддерживающих IDN, допускается использование букв национальных алфавитов, а, например, некоторые буквы латинского и русского алфавитов пишутся идентично. Этим могут воспользоваться злоумышленники, они могут зарегистрировать имена, которые выглядит как имена известной фирмы, например microsoft.com, где некоторые буквы заменены на русские, так что это внешне не заметно, например, буквы с или о. Тогда при ошибочной замене одной или нескольких букв на русские клиент попадет не на сайт компании Microsoft, а на внешне неотличимый от него сайт злоумышленника.
Спуфинг (spoofing) - одна из разновидностей фишинга. Ее суть заключается в атаке через DNS (или каким-то иным способом), когда страница с известным URL подменяется страницей злоумышленника.
Троянский конь (Spyware) - программа, записывающая все нажатия клавиш на терминале или мышке, способна записывать screenshot'ы и передавать эти данные удаленному хозяину.
Какие виды атак взламывают WEB-серверы?
SQL-Injection
Файлы cookie
Вредоносной рекламы
Методом переадресации результатов работы поискового сервера
Через виртуальные хостинговые компании
Через уязвимости программ, обслуживающих форумы
Cross-site scripting
В чем суть атаки типа "drive-by download"?
Одним из основных инструментов вторжения в последнее время стала атака типа "drive-by download" (загрузка файлов или скриптов без ведома хозяина). Разнообразие мультимедиа форматов также облегчает работу хакеров. Пользователя обычно не удивляет необходимость загрузки новейшей версии кодека или драйвера для просмотра или прослушивания материала, размещенного на удаленном сервере.
В чем суть атаки типа Cross-Site Scripting?
Cross-Site Scripting (CSS) является одной из наиболее широко распространенных сетевых атак, преследующих цель, получение персональных данных с помощью веб-технологий (иногда этот вид атаки называют "HTML injection"). Задача решается за счет выполнения определенного Javascript кода в браузере жертвы. При этом получается некоторая информация, содержащаяся на машине жертвы (например, cookies). Метод не наносит непосредственного вреда, но может быть предшествовать более серьезной атаке.
В чем суть атаки через файлы cookie?
Файлы cookie. Большинство браузеров поддерживают два метода, которые веб-приложения могут использовать для сохранения информации о запросах клиентов: обычные файлы cookie и файлы cookie сеанса.
Файл cookie - это небольшой файл, создаваемый браузером и хранящийся на компьютере пользователя. Его содержимое не регламентируется, но обычно в таких файлах хранится название, дата окончания срока действия и некий объем данных, например: "Visited = 36" или "Selected = true". Файл cookie сеанса позволяет веб-приложениям хранить данные в памяти.
В чем суть атаки типа SQL-инъекция?
SQL-инъекция. SQL-инъекция используется для атаки веб-сайтов, работающих с базами данных. Возможность внедрения SQL-кода возникает, если в SQL-запросах используются неотфильтрованные данные, вводимые пользователями.
В чем суть атаки типа XSS (межсайтовый скриптинг)?
XSS (межсайтовый скриптинг). Данный вид атак направлен на веб-сайты, отображающие вводимые пользователями данные. Вместо попытки получения контроля над базой данных путем ввода вредоносного кода злоумышленник пытается атаковать код самого веб-сайта, внедряя в него вредоносные сегменты.
Каковы особенности общие для всех атак CSRF?
CSRF. CSRF (Cross-site request forgery) атака, известная также как "атака одного клика", основана на исполнении веб-сайтом неавторизованных команд, исходящих от пользователя, которому веб-сайт доверяет.
Что означает термин " Использование фальсификации заголовков запросов"?
Adobe Flash позволяет посылать заголовки HTTP-запросов из сценариев, использующих Flash Action Script. Возможность для злоумышленников заставить браузер жертвы посылать HTTP-запросы третьей стороне имеет серьезные последствия для безопасности.
Браузеры накладывают ограничения на размер кода (потенциально вредоносного), который может быть послан внутри фальсифицированного заголовка запроса. Такое ограничение снижает риск уязвимости. Но Flash позволяет злоумышленникам обойти это ограничение путем упаковки фальсифицированных запросов в Flash-файл. Специальным образом подготовленный Flash-файл доставляет вредоносный код атакуемому браузеру, что увеличивает риск успешной атаки веб-сервера.
От чего зависит успех блокирования запросов к заведомо вредоносным доменам?
В веб-приложениях также обычно применяется какая-либо форма классификации URL-адресов. При этом запросы к заведомо вредоносным адресам или доменам могут блокироваться вне зависимости от того, был ли обнаружен вредоносный контент. Безусловно, это полезно с учетом того, что хакеры активно используют автоматизацию для постоянного изменения угроз с целью избежать обнаружения. Успех блокирования запросов к заведомо вредоносным доменам зависит от своевременного обновления списка подобных сайтов. Эффективность применения такого списка определяется рядом факторов, в числе которых:
Релевантность данных. Сбор необходимой информации о вредоносных интернет-программах для выявления новых атак должен производиться максимально быстро. Системы должны иметь глобальный охват. В таких решениях могут использоваться автоматические интернет-боты или совместная работа с партнерами, позволяющая собрать максимальный объем данных об интернет-угрозах.
Серверная поддержка. Для обработки поступающих данных о URL-адресах, проверки контента и оперативной публикации необходимых данных, используемых соответствующими продуктами, требуются сложные системы обработки и публикации. Такие системы должны быть способны отслеживать угрозы и вести анализ вредоносных интернет-программ в реальном времени, гарантируя выявление всех используемых в атаке файлов и блокирование всех задействованных URL-адресов.
Фильтрация URL-адресов также может использоваться для управления типами сайтов, которые пользователям разрешается посещать. Сайты, относящиеся к порнографическим, игровым или развлекательным, могут быть закрыты в пределах организации (поскольку они опасны или мешают работе). Точность классификационных данных определяет, насколько успешной окажется фильтрация URL-адресов. По этой причине в некоторых продуктах по лицензии используются данные от сторонних компаний, что повышает их способность к классификации URL-адресов.
Многих угроз можно избежать, если сформировать шлюз веб-сервера, который может что?
Фильтровать URL, препятствуя заходам на скомпрометированные веб-узлы.
Выявлять вирусы, нежелательные программы, троянских коней, червей, и др.
Выявлять истинный тип файла, а не полагаться на расширение имени.
Обеспечивать работу SSL с высоким уровнем защиты
Блокировать доступ в случае, если вместо имени машины используется IP-адрес
Исполнять коды, только если они получены из проверенных URL
Автоматически и регулярно (до нескольких раз в день) обновлять базу данных вредоносных кодов, вирусов и т.д.
Блокировать работу, если число соединений слишком велико или, если загружаемый web-модуль оказался слишком велик.
Не доверять IP-адресам (web-объектов), присылаемым пользователями.