Математико-­‐механический факультет



Pdf көрінісі
бет12/16
Дата01.12.2023
өлшемі1,17 Mb.
#194432
түріОбзор
1   ...   8   9   10   11   12   13   14   15   16
Байланысты:
Krasnoperov diploma (1)

4.4.3.
 
Влияние веб-­‐сервера на быстродействие
 
В качестве веб-­‐сервера для проекта «Электронный
дневник» была выбрана схема фронтенд-­‐бэкенд в виде nginx и
Apache соответственно.


25
Такая схема позволяет разгрузить тяжелый Apache от
статических
запросов,
перенеся
раздачу
статического
содержимого на nginx, а в случае обращений к динамическому
содержимому nginx выступает в качестве посредника между
пользователем и бэкендом в виде Apache. Такое посредничество
дает значительный прирост в производительности засчет
скорости отдачи содержимого от бэкенда к фронтенду в
отличии от прямой отдачи от Apache к пользователю. Ведь у
большинства пользователей Интернет-­‐каналы не позволяют
забирать содержимое со скоростью, равной генерации
содержимого, поэтому происходит ситуация, когда в один
момент запущено множество httpd-­‐процессов, занимающих
большое количество серверных ресурсов.
Введя в классическую схему фронтенд в виде nginx, мы
получили выигрыш во времени работы httpd-­‐процессов, ведь
теперь Apache передает не ограниченному в Интернет-­‐канале
пользователю, а легкому веб-­‐серверу nginx, связь с которым
позволяет отдавать содержимое в сотни раз быстрее. Таким
образом апач на каждый запрос занят не 10 секунд, а 0.1
секунду, и процессов httpd будет запущено не 1000, а 10. [13]
Ответ при этом буферезируется в nginx, но объем ответа
обычно в несколько раз меньше, чем объем процесса на бэкенде
(httpd+perl, PHP или даже Java), который этот ответ создал,
поэтому память будет очень заметно экономится.
4.4.4.
 
Противодействие SQL-­‐инъекциям и XSS-­‐атакам
Внедрение
SQL-­кода
(SQL-­инъекция)

один
из
распространённых способов взлома сайтов и программ,


26
работающих с базами данных, основанный на внедрении в
запрос произвольного SQL-­‐кода.
Внедрение SQL-­‐кода, в зависимости от типа используемой
СУБД и условий внедрения, может дать возможность
атакующему выполнить произвольный запрос к базе данных
(например, прочитать содержимое любых таблиц, удалить,
изменить или добавить данные), получить возможность чтения
и/или записи локальных файлов и выполнения произвольных
команд на атакуемом сервере. [16]
Поэтому важно избавить злоумышленника от такой
возможности. Для обеспечения безопасности исполняемых SQL-­‐
запросов был использован объект Zend_Db, входящий в Zend
Framework – свободный каркас для создания веб-­‐приложений и
веб-­‐сервисов от разработчиков языка PHP, а также
дополнительные функции приведения входных данных к
корректному виду, такие как addslashes, производящая
экранирование спецсимволов.
XSS – тип уязвимости интерактивных информационных
систем в вебе. XSS возникает, когда в генерируемые сервером
страницы по какой-­‐то причине попадают пользовательские
скрипты. Специфика подобных атак заключается в том, что
вместо непосредственной атаки сервера они используют
уязвимый сервер в качестве средства атаки на клиента. [17]
Для обеспечения невозможности
проведения
XSS-­‐
атак
был
проведен ряд предупреждающих мероприятий, таких как
экранирование данных при вводе и выводе с помощью
addslashes и удаление html-­‐тегов при вводе с помощью функции
strip_tags.


27
Для фильтрации и приведения данных к безопасному виду
используются классы каркаса Zend Framework, такие как
Zend_Filter_StringTrim, в частности, содержащаяся в нем
функция filter():
$filter = new Zend_Filter_StringTrim();
$email = $filter-­‐>filter($email);
$password = $filter-­‐>filter($password);
и пр.
Эти и многие другие аспекты безопасности реализуются с
помощью элементов каркаса Zend Framework, что позволяет
обеспечить
защищенность
веб-­‐проекта
«Электронный
дневник» на достаточном уровне.


Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   16




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет