SlideShare une entreprise Scribd logo
1  sur  22
Курсов проект

                                  по

             Безопасност и защита

                         на тема

   Защита при създаване на PHP приложения в

                          Интернет




Изготвил:                                Проверил:

Антон Шумански                           доц.д-р.Стефан Дражев

спец.Информатика, V курс,гр.59,          х.ас. Видилина Кръстева

фак.№10782



             Икономически Университет – Варна, 2013
Защита при създаване на PHP приложения в Интернет 2013


                                                         Съдържание

1.      Какво представлява PHP. Същност и приложение на езика. ........................................ 3

2.      Същност на уеб приложенията ........................................................................................ 4

3.      Видове атаки насочени към php приложенията ............................................................. 6

     3.1.     XSS атаки.................................................................................................................... 6

     3.2. Brute-force атаки ............................................................................................................ 6

     3.4.     Отĸpaдвaнe нa cecия (session hijacking) ................................................................... 7

     3.5.     SQL инжекция (SQL Injection) ............................................................................... 10

     3.6.     Атака чрез препълване на буфера (buffer overflow attacks) ................................. 11

     3.7.     Cross-site request forgery (CSRF) ............................................................................ 12

     3.8.     Атаки с разпределен отказ от обслужване(DDoS атаки) ..................................... 13

4.      Начини за защита от атаки ............................................................................................. 14

     4.1. XSS атаки .................................................................................................................. 14

     4.2. Brute-force атаки ....................................................................................................... 15

     4.3.     Отĸpaдвaнe нa cecия ................................................................................................ 16

     4.4.     MySQL Injection ....................................................................................................... 17

     4.5.     Атака чрез препълване на буфера .......................................................................... 18

     4.6.     Cross-site request forgery (CSRF) ............................................................................ 18

     4.7.     Предпазване от DDoS атаки ................................................................................... 19

     4.8.     Secure Sockets Layer (SSL) и Transport Layer Security (TLS). .............................. 20

Заключение ............................................................................................................................. 21



Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                                                                             2
Защита при създаване на PHP приложения в Интернет 2013

Източници ............................................................................................................................... 22




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                                                                            3
Защита при създаване на PHP приложения в Интернет 2013


    1. Какво представлява PHP. Същност и приложение на езика.

      PHP представлява скриптов език за програмиране. Той е сравнително нов език.
Въпреки това добива голяма популярност сред уеб програмистите поради мощната му
функционалност и лесното му използване. Главно се използва за създаването на
сървърни приложения и динамично уеб съдържание. PHP е изграден на базата на C и
Perl. Едно от главните му предимства е, че е безплатен и се разпространиява под
лиценза на BDS. Друга причина за успеха на този език е, че е сървърен език, тоест той
се изпълнява от yеб сървър, а не от компютъра на потребителя. По този начин не се
изискват големи възможности от компютрите на потребителите, а само от сървърите,
които го изпълняват. Може да работи под различни операционни системи (Unix, Linux,
Windows, BSD, Mac OS X и други). Също така има възможност да осъществява връзка с
няколко вида бази от данни като: MySql, Oracle, PostgreSQL, Sybase и други.


   2. Същност на уеб приложенията


      Уеб приложение e приложение, до което потребителите имат достъп през мрежа
като Интернет или интранет. Уеб приложение също може да означава софтуерно
приложение, което е написано на поддържан от браузър програмен език (като
JavaScript, HTML(маркиращ език), PHP и т.н.) и което разчита обичайните уеб браузъри
да успеят да рендерират приложението. Като по кратко определение за уеб приложение
може да се разгледа следното: Уеб приложение е софтуер, който работи в браузъра.
      Днес уеб технологиите позволяват да се създават не само интерактивни и
функционални сайтове, но и напълно функционални уеб приложения, с интерфейс,
функционалност и бързодействие, които не само не отстъпват на класическите
настолни приложения, но и в много отношения ги надминават.
      Традиционните приложения се инсталират или се стартират от диск или друга
медия. Те разчитат на дадена среда, която в общия случай се осигурява от
операционната система, а в други случаи е допълнително инсталирана на съответния
компютър. Стартирайки едно традиционно (настолно) приложение, то зарежда
интерфейс, без необходимостта от посредствени програмни средства.
      При уеб приложенията, за да се стартира приложението се използва браузър.



Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                       4
Защита при създаване на PHP приложения в Интернет 2013

Едни от оснивните предимства на уеб приложението са следните:


      Ниски разходи за разработка - И като време и като ресурси, разработката на уеб
       приложения е значително по-евтина от тази на настолен софтуер. В общия
       случай уеб приложенията се пишат на същите програмни езици, които се
       използват за изработка на уеб сайтове. От една страна тези програмни езици са
       много популярни и има много програмисти, които умеят да пишат на тях, а от
       друга - съществуват и много готови ресурси, които могат да намалят времето за
       разработка и съответните необходими ресурси;


      Независими от операционната система - Понеже работят в браузър, уеб
       приложенията са общо взето независими от конкретната операционна система;


      Не изискват инсталация - За да използва дадено уеб приложение, потребителят
       не се налага да го инсталира, както е с много от настолните приложения.
       Приложението се стартира директно без предварителна инсталация;


      Достъпни отвсякъде посредством Интернет - В общия случай уеб приложенията
       се намират на сървър, свързан с Интернет и са достъпни от всяко устройство,
       свързано с Интернет;


       Сигурността е важна част при изграждането и функционирането на всички
разпределени компютърни приложения. Това важи с пълна сила за приложенията,
представляващи или предлагащи web услуги, тъй като те се изграждат въз основата на
общи   стандарти,   осигуряващи    междуплатформена      съвместимост   и   прозрачно
местоположение на отделните компоненти. С все         по-масовото използване на web
услугите в изграждането на разпределените приложения, нараства и необходимостта от
разработване и реализация на адекватни механизми за защита на такива приложения.
По-долу ще разгледаме някои от основните методи за атака и съответните им
механизми за защита.




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                      5
Защита при създаване на PHP приложения в Интернет 2013


        3. Видове атаки насочени към php приложенията

        3.1.    XSS атаки

        XSS е съкращение от Cross Site Scripting. Обикновено се срещат в уеб
приложения и позволява на атакуващите да инжектират скрипт от страна на
клиента в уеб страници, гледани от други потребители. XSS скриптовете могат да
бъдат използвани от нападателите, за да заобиколят контрола на достъп на даден
сайт. Този тип скриптове представляват около 84% от всички уязвимости в
сигурността. Техният ефект може да варира от дребна неприятност, до значителен риск
за сигурността, в зависимост от чувствителността на данните, обработвани от уязвимия
сайт.
        XSS уязвимости са били докладвани и експлоатирани от 1990 г. насам. Видни
обекти, засегнати в миналото са например сайтовете Twitter, Facebook, MySpace,
Orkut и други.
        Няма единно прието разделение на различни видове XSS атаки, но неофицялно
те се радзелят на два основни вида: непостоянни (non-persistent) и устойчиви
(persistent).
        При устойчивите, неоторизираните тагове се съхраняват постоянно на уеб-
сървъра на жертвата - примерно, използва се SQL инжектиране, за да се заразят
определени полета в базата данни. Оттам нататък всеки, който посещава сайта, може да
е изложен на опасност.
        Вторият вид атаки, ( непостоянни ), са трудни за засичане и елиминиране. При
тях неоторизираните скриптови тагове не съществуват на засегнатия уеб-сървър. Не
могат да се търсят в базата данни или файловете. Този тип XSS атаки се възползват от
слаби техники за валидиране на входящото съдържание в сървъра. Те го лъжат така, че
да го накарат да приеме злонамерените редове и после сляпо да ги праща като част от
отговора, който подава към браузъра.




3.2. Brute-force атаки

        Методът груба-сила (Brute-force attacks) се състои в това, да се изпробват всички
възможности за ключ. Всъщност, „разбиването” на даден шифър се състои в това, да се


Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                          6
Защита при създаване на PHP приложения в Интернет 2013

намери начин, по-бърз от груба-сила. Например, ако един шифър има ключ, с 250
възможности, brute-force очаква разбиването да стане с 249 проверки. Принципът на
този тип атаки е да обходи всички възножни комбинации, докато не достигне до
използваната. Обикновено се прилага върху сайтове, които изискват потребителко име
и парола. Съществуват най-различни програми, които извършват brute-force атаки. Те
са свободно достъпни в интернет. Пример за такава програма е BrutusA2.


   3.3. Изпълнение на злонамерени файлове (malicious file execution)


       Тази уязвимост се появява в много уеб приложения. Главно в такива
приложения, в които позволяват URL параметри на имената на файловете , за да се
включат, като URL адреси или препратки към файловата система. В тези слочаи може
да се подадат от „нападателя“ разнични файлове, които да се изпълнят на сървъра и да
удовлетворят целите на „нападателя“ - да му предоставят желаната от него информация
или да повредят информация. Изпълнение на злонамерени файлове може да се
набюдава и когато потребители се опитват да качат файл в даден сайт, чрез форма за
качване на файлове. Потреителите могат да се опитат да качат техен скрипт и по този
начин да осъществят злонамерените си дейстия.


   3.4.   Отĸpaдвaнe нa cecия (session hijacking)

       Почти всички интернет приложения използват потребителски сесии, за да
създават по-персонализирана среда на своя уеб сайт. Сесията на всеки отделен
потребител се съхранява и управлява на сървъра чрез уникален идентификационен
номер (session ID). Точно тези идентификатори са често основна цел на атакуващите,
които чрез тях могат да “откраднат самоличността” на потребител. Повечето сървъри
вече имат изградени защити или поне добри съвети за практики за предпазване на тези
ключове, главно от три класа атаки:



      Подслушване – вариант, при който се извършва т.нар. session hijacking от
       злонамерен човек подслушващ трафика между клиент и сървър;




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                     7
Защита при създаване на PHP приложения в Интернет 2013


      Предсказване – вече остаряла, но не задължително неработеща, техника за
       намиране на session id на друг потребител на базата на статистика. Днешните
       сървъри поддържат достатъчно дълги ключове със сравнително надеждни
       алгоритми за генериране.



      Налучкване    -   известни   още   като   Brute   Force   атаки.   При   защитата
       потребителските session id от страна на сървъра може да приемем, че
       съвременните уеб сървъри са достатъчно надеждни срещу такъв род атаки.


       HTTP е протокол за комуникация, в който не се съхранява текущото състояние
на връзката. За въвеждане на такава функционалност са измислени потребителските
сесии. Базовата идея е сървъра да генерира вече споменатите идентификационни
номера/ключове в някой от ранните моменти на взаимоотношение с потребителя.
Сървърът изпраща към браузъра на потребителя тези ключове и при нова заявка от
потребителя очаква да му бъде “върнат” същия session id. По този начин session id са се
превърнали и в идентификационен признак за потребителите, като приложенията ги
използват, за да запазват допълнителна информация за потребителя (обикновено
променливи) и създават усещане за индивидуалност в потребителите.Поради
относителната сигурност много често session ID се използват като метод за
автентикация. Това позволява гъвкавост на приложенията, така че да не питаме
потребителя непрекъснато за име и парола, дигитален сертификат или друг тип
проверка на самоличност, а вместо това да стартираме уникална потребителска сесия и
да я използваме като автентикатция след първото му успешно влизане в системата.
Така session IDs се превръщат в нещо като временни пароли за достъп до системата.
Поради тази причина те са много апетитна информация за хакерите - на практика
позволяват директен достъп до системата чрез чужд профил. На схемата по-долу е
покан един пример за използване на чужда сесия.




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                         8
Защита при създаване на PHP приложения в Интернет 2013




                          Фиг. 1, Използване на чужда сесия




      Първо атакуващият (в случая също легитимен потребител на системата) се
автентикира на сървъра (1) и получава дадено session ID (2). След това атакуващия
изпраща връзката http://online.worldbank.dom/login.jsp?sessionid=1234 към потребителя,
опитвайки се да го накара да я последва (3). Потребителя последва връзката и отива на
страницата за въвеждане на име и парола на сървъра (4). В този момент сървъра вижда,
че потребителя вече е стартирал потребителска сесия и няма нужда от създаване на
нова. Накрая потребителят предава името и паролата си към скрипта за автентикация и
сървърът му дава права за достъп до личния му банков акаунт. В този момент
атакуващия, знаейки неговото session ID, има достъп до личните данни на клиента. В
този момент се казва, че потребителят е “проникнал в сесията на атакуващия”.
   Друг вариант за атака е кражбата на бисквитките, в които се съхранява session id-то.
На схемата по-долу е показан принципа на кражба на бисквитки.




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                        9
Защита при създаване на PHP приложения в Интернет 2013




                                     Фиг. 2 Кражба на бисквитки


       Атакуващият намира XSS пробив в услуга на сървъра www.worldbank.dom,
която е от същият домейн както online.worldbank.dom. Изпраща се адреса към
потребителя (1), потребителя отива на дадения адрес (2) и приема cookie от
www.worldbank.dom      (3).   Така   cookie   е   валидно      и   за   другият   сървър
online.worldbank.dom. Когато потребителят влезе в банковия си акаунт (4), атакуващият
може да направи пробив (5).
       Друга “неприятна” възможност на браузърите е да могат да създават cookie чрез
meta таг:
       <meta http-equiv=Set-Cookie content=”sessionid=1234″>,
при което се постига същия ефект както с javascript-a.


   3.5.     SQL инжекция (SQL Injection)

       SQL инжекциите са начин за променяне на заявката към дадена база данни -
MySQL, MSSQL или друга. Основната цел е да се открадне информация от базата
данни или в по-редки случаи да се увреди информацията. Базада данни е основното
хранилище на информация за всяка една система. В уеб системите в нея обикновено се
съхранява поверителна информация, като потребителски имена, пароли и други лични



Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                        10
Защита при създаване на PHP приложения в Интернет 2013

данни за всеки един потребител на системата. Именно тези данни са главната цел на
недобронамерените потребители. Например ако в дадено приложение съществува
следната заявка:
      SELECT * FROM tablica WHERE id = '$id'
При нормално изпълнение на скрипта променливата $id ще съдържа номер,
но ако някой напише на мястото на цифрата това: 5'; DROP TABLE име на таблица; --
ще може да съсипе цялата база данни. Тази инжекция използва GET (променливи
подадени чрез http адреса). Може да се направи чрез POST, SESSION, COOKIE и дори
SERVER ако се използват от системата.


   3.6.   Атака чрез препълване на буфера (buffer overflow attacks)

      Буферът е временна област за съхранение на данни. Когато там се поставят
повече данни, отколкото е предвидено първоначално от даден програмен и системен
процес, допълнителните данни ще го препълнят, откъдето произлиза и името,
причинявайки част от данните да изтекат към други буфери, което може да разруши
данните, които те съдържат или да запише върху тях.
      При атака за препълване на буферите препълващите данни понякога съдържат
специфични инструкции за дейности, проектирани от хакери или злонамерени
потребители. Например данните могат да превключат отговор, който уврежда
файловете, променя данните или разкрива частна информация.
      Хакерите биха използвали буферното препълване, за да се възползват от
програма, която очаква въвеждане от потребителя. Има два типа буферно препълване -
стек базирани и хип базирани.
      Хип (от heap – купчина) базираните са по-трудни за изпълнение и затова се
срещат по-рядко. Те атакуват приложението чрез „наводняване“ на пространството
памет, запазено за програмата. Стек (от stack - купчина) базираното препълване на
буфера, което се среща по-често сред хакерите, експлоатира приложения или програми,
като използва това, което е известно като стек - пространство от паметта, използвано за
съхранение на потребителски въвеждания.
      Един стек може да поддържа само определено количество данни и ако входният
низ е по-дълъг от резервираното пространство, резултатът е препълване, създаващо
дупка в сигурността. Злонанерени хакери търсят такива пробойни със специално



Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                       11
Защита при създаване на PHP приложения в Интернет 2013

написани команди, които причиняват препълване и задействат атаката. След като
злонамерената команда е причинила препълване, хакерът все още трябва да изпълни
командата, като посочи адрес за връщане, който сочи към командата. Препълването на
буфера „счупва“ частично приложението, но то се опитва да се възстанови, като отива
към адреса за връщане, който е бил пренасочен към злонамерената команда от хакера.
Когато атаката с препълване на буфера задейства командата, намерена в новия адрес за
връщане, програмата смята, че все още работи. Това      означава,   че   командният
прозорец, който е бил отворен, работи със същия набор изпълними разрешения, както
приложението, което е било компрометирано, позволявайки на хакера да получи пълен
контрол над операционната система.


   3.7.   Cross-site request forgery (CSRF)

      Cross-site request forgery (CSRF) е широко използвана уязвимост в уеб
приложенията. Това е атака, чиито трик е да накара жертвата да зареди страница, която
съдържа зловреден код. Този зловреден код наследява идентичност и привилегиите на
жертвата за извършване на нежелани действия от името на жертвата, като променяне на
е-мейл адрес на жертвата, домашен адрес или парола, или извършването на покупка,
превод на пари и други.




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                     12
Защита при създаване на PHP приложения в Интернет 2013




                           Фиг. 3 Принцип на работа на CSRF



       CSRF атакува целеви функции, които водят до промяна в състоянието на
сървъра, но може да се използват за достъп до чувствителни данни. Най-често
зловредният код представлята IMG или IFRAME и трудно може да се идентифицира.
Реално CSRF представлява инжектиране на заяква в мрежата посредством уеб браузър.
Това води до заразяване на отворените от браузъра сайтове. Този вид атаки са доста
популярни, но и предпазването от тях се реализира сравнително лесно.
       CSRF атаки са известни също и с редица други имена, включително XSRF "Sea
Surf", Session Riding и Cross-Site Reference Forgery.



   3.8.    Атаки с разпределен отказ от обслужване(DDoS атаки)

       Атаката с рапределен отказ от обслужване (DDoS) може да бъде пагубна за една
организация, струвайки й време и пари, като по същество изключи корпоративните
системи.
       Хакерите извършват DDoS атака, като експлоатират пролуки и уязвимости в


Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                   13
Защита при създаване на PHP приложения в Интернет 2013

компютърната система (често уеб сайт или уеб сървър), за да се позиционират като
главна система. След като веднъж са се поставили в положение на главна система,
хакерите могат да идентифицират и комуникират с другите системи за по - нататъшно
компрометиране.
       След като нарушителят е поел контрол над множество компрометирани системи,
той може да възложи на машините да започнат някоя от многото атаки за препълване,
докато целевата система се препълни с фалшиви искания за трафик, което ще доведе до
отказ на услуга за ползвателите на тази система. Потокът от входящите съобщения от
компрометираните системи, ще причини спиране на системната цел и отказ от услуги
към нея, което води до невъзможност за достъп на потребителите до каквото и да било,
и следователно ще струва на организацият време и пари.


4. Начини за защита от атаки

4.1. XSS атаки

       За да се защити php приложение от xss атаки трябва много добре да се
филтрират полетата в прилежението, където се въвежда информация и съответно тази
информация после се показва на екрана. Пример за такова поле е поле за коментари в
блог. Символи, които не трябва да бъдат разрешавани за въвеждане в полето са: < > ( )
{ } + ! @ $ % &* и други.
Основни правила, които се спазват при наличието на форми в php приложение са:
      Всичко трябва да бъде конвертирано в UTF-8;
      Проверка дали дадена стойност съществува;
      Премахване интервалите в началото и края (trim);
      Премахване, ако има, повече от 1 интервал между думите
       ( $d = preg_replace('/ss+/', ' ', $_POST['comment']););


В такива случаи много подходящо е да се използва и вградена функция в php:
       $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);


       Други два подхода, които могат да се съчетаят с филтрирането на входящите
данни е „алгоритъм за разстояние“ и „отпечатък на браузъра“.


Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                     14
Защита при създаване на PHP приложения в Интернет 2013

         Php разполага с библиотеки за определяне на местонахождението на
потребителя.      Алгоритъмът     за   разстояние   представлява    скрипт,   който   следи
потребителя в кой град се намира и ако се установи различно междунахождение на
един и същи потребите в рамките на определено време, да се предприемат съответните
мерки.
         Подходът „Отпечатък на браузъра“ представлява запазване в сесия на типа и
версията на браузъра на потребителя. Тази информация може да се криптира и да се
проверява. По този начин ако сесията бъде открадната от друг човек, няма да може да
бъде използвана.


4.2. Brute-force атаки

Защита от brute-force атаки от потребителска страна:

        Като превенция от brute-force атаки се препоръчва използването на дълги пароли
         съчетани от думи и цифри. Думите, които ще бъдат използвани не е
         препоръчително да са стандартни (admin, root, code, pass и т.н.), поради факта че
         brute force използва комбинацията от най-често използваните думи и речникови
         думи;
        Друго задължително условие е да се използват различни пароли за различни
         сайтове. Това се налага заради фишинг сайтовете, които са направени само да
         събират информация от потребителите;
        Също така се препоръчва честа смяна на паролите. По този начин ако някои
         злонамерен потребител е разбрал дадена парола, достъпът до данните може да
         бъде отново ограничен.

Защита от brute-force атаки от програмна страна:

        Използване на Captcha (Completely Automated Public Turing test to tell Computers
         and Humans Apart) в превод – Напълно автоматизирана проверка за
         разграничаване на човек от компютър. Идея на метода:

                 1. Генериране на произволен код (цифри и букви);




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                           15
Защита при създаване на PHP приложения в Интернет 2013

             2. Записване на този код в потребителската сесия;

             3. Изобразяване на този код посредством PHP (като картинка). Кода се
             изобразява на картинката като всяка буква е в различен шрифт, големина,
             цвят. Допълнително се добавя шум в картинката и понякога блър
             (замъгляне) Това се прави с цел затрудняване на ботовете да прочетат
             кода;

             4. Дадената картинка се показва на потребителя и той въвежда кода от
             картинката в текстово поле. След попълването на полето, стойността му
             се взима и се сравнява с тази записана в сесията. Ако кода съвпада то е
             попълнена от потребител, ако не съвпада тогава се счита, че това е бот;

      Втори най-използван метод е блокиране на ИП при неколкократни неуспешни
       опити.(Пример: Ако потребител въведе повече от трипъти грешна парола
       автоматично се блокира неговото ИП, за определен период от време.)


   4.3.   Отĸpaдвaнe нa cecия

       Справянето с проблема “фиксирана сесия” е в самото приложение. Именно
то трябва да добавя функционалност за справяне с проблема. Задължението на сървъра,
където се изпълнява уеб-приложението, е да защитава session id от “открадване”
(session hijacking), но не и от фиксиране. Приложението трябва да се грижи за:

      Игнориране на каквото и да session id подадено от потребителя, независимо дали
       сървъра на който се изпълнява е с разрешителен или стриктен режим. По този
       начин категорично се задава стриктен режим на достъп до сесиите;
      Да не се създават сесии преди потребителя да е влязъл в системата. По този
       начин е сигурно, че атакуващият е активен потребител и може да бъде по-лесно
       проследен;
      Използването на таймер за валидност на сесиите;
      Да не разрешава едновременно влизане в системата на един потребител от две
       различни места;
      Унищожаването на сесия трябва да става на сървъра. Не трябва да се разчита



Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                       16
Защита при създаване на PHP приложения в Интернет 2013

       единствено на изтриване на дадено cookie от браузъра на клиента;
      Винаги трябва да се предоставя възможност на потребителя за “изход” от
       системата. Така ще се унищожи както текущата сесия, така и евентуални
       предишни, когато потребителя е забравил да излезе стандартно от системата;


   4.4.   MySQL Injection

       Съществуват различни функции, които по един или друг начин модифицират
входният текст, за да го направят безвреден. Някои от тези функции са:


      htmlspecialchars($tekst);
       Променя текста, като замeства всички специални символи за HTML като < > %
       & " и други с техните аналози в HTML. Това ги променя така, че те могат да се
       виждат в браузера, но той няма да ги счита за HTML и те няма да се изпълнят.
       Това предпазва от този тип "атаки", които прехвърлят потребителя към други
       страници. Те подават HTML, а тази функция го неутрализира.


      strip_tags($tekst);
       Променя текста, като изтрива всякакви HTML тагове, но информацията която се
       подава бива променена и неформатирана.


      trim($tekst);
       Премахва всички празни места, таблуации, нови редове и други подобни.


    addslashes($tekst);
       Основната защита срещу SQL инжекции. Слага „“ пред всички кавички, така че
       SQL да ги игнорира.



       Основната цел е филтриране на данните, които се подават към заявката. Не
трябва да се има доверие на потребителя, а трябва всички данни да бъдат филтрирани.
След като е сигурно,че са филтрирани могат да бъдат подадени към заявката.




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                        17
Защита при създаване на PHP приложения в Интернет 2013


   4.5.      Атака чрез препълване на буфера

         Една от основните препоръки е дa се избягва използването на библиотечни
файлове. Библиотечните файлове, които се използват в езиците за програмиране и по
природа са несигурни, са цел за хакерите по време на атаките срещу приложенията.
Всяка слабост, намерена от хакера в библиотечния файл, ще съществува също във
всички приложения, които използват библиотечни файлове, давайки на хакерите
блестяща цел за потенциална атака.
         Важно е също да се филтрират вероятни опасни HTML кодове и знаци, които
могат да причинят проблеми с базата данни. Например в ASP кода апострофът,
кавичките, амперсантът са запазени символи. Тези запазени символи не могат да се
включват в данните, въвеждани от потребителите или те ще причинят счупване на
приложението. Важно е да се филтрират и да се заменят с други, за да се избегнат
усложнения и проблеми.
         Тестването на приложенията е задължителен етап преди внедряването им.
Тестването трябва да включва както и въвеждане на некоректрни данни, така и опит за
разпробиване и хакване преди да бъде пуснато онлайн в Интернет.


   4.6.      Cross-site request forgery (CSRF)

         Защитата от този вид атаки е сравнително проста, но препоръчителна. Идеята е
да се създаде сесия с уникален ключ. Същият ключ да се генерира в скрито поле в
дадената форма, която ще се проверява за CSRF. При изпращането на формата двата
ключа се сравняват. Ако са еднакви означава, че всичко е наред и изпращането на
формата може да продължи. Чрез php код ситуацията може да бъде представена по
следния начин:
<?php
session_start();
if(isSet($_POST['submit'])) {
if(isSet($_SESSION['token'] == $_POST['token'])) {
echo 'ОК';
} else
 header("Location: ./index.php");



Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                     18
Защита при създаване на PHP приложения в Интернет 2013

}
} else {
$token = md5(uniqid(rand(), true));
$_SESSION['token'] = $token;
$form = '
<form method="POST" action="">
Текст: <input type="text" name="message" /><br />
<input type="hidden" name="token" value="' . $token . '" />
<input type="submit" name="submit" />
</form>';
echo $form;
}
?>


     4.7.   Предпазване от DDoS атаки

        Предотвратяването на DDoS атака може да бъде трудно, тъй като тя е
предизвикателство за това как да се направи разграничение между зловредна заявка за
трафик и легитимна такава, тъй като те използват еднакви протоколи и портове.
Въпреки това съществуват няколко стъпки, които могат да се предприемат за защита на
системите от разпределени атаки, предизвикващи отказ от услуги:
        Необходимо е да има наличен излишък от честотна лента във връзката на
организацията с интернет: Това е една от най-лесните защити срещу DDoS, но може да
се окаже доста скъпа. Когато се използва много честотна лента за обслужване на
заявките за трафик, това може да помогне за предпазване от ниско ниво DDoS атаки.
Освен това, колкото по-широка честотна лента има дадена организация, толкова повече
трябва да направи нападателят, за да запуши връзката й.
        Препоръчително е да се използва система за откриване на прониквания (Intrusion
Detection System, IDS). Няколко от съвременните системи за откриване на прониквания
са снабдени с технологии за защита на системите от DDoS атаки, като използват методи
за проверка и потвърждаване на връзката и за предотвратяване достигането до
корпоративните сървъри на определени заявки.
        Съществуват устройства за DDoS защита и предотвратяване, които са



Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                      19
Защита при създаване на PHP приложения в Интернет 2013

конструирани специално за откриване и осуетяване на DDoS атаки.
       Препоръчително е и да се поддържа резервна интернет връзка с отделна база с
интернет адреси за критични потребители. Това представлява алтернативен път, ако
първичната верига е претоварена със злонамерени заявки.


   4.8.   Secure Sockets Layer (SSL) и Transport Layer Security (TLS).

       SSL е създаден от Netscape и се използва широко за защита на web приложения
на транспортно ниво. SSL работи като използва криптиране с частен ключ. Ключът се
предава по SSL връзка. SSL осигурява функционалност за защита на данните,
включващи     автентикация,    цялостност   и   конфиденциалност           на     предаваната
информация. TLS е стандарт предложен от IETF и базиращ се на SSL 3.0. Двата
протокола не са взаимно съвместими, но TLS има възможност да работи като SSL 3.0
обратна съвместимост. За сигурната работа на web услугите не е уместно да се
използват основните механизми на защита на транспортно ниво (SSL/TLS) и / или на
мрежово ниво (IPsec), поради следните причини: осигуряват защита на междинно ниво,
а не защита на приложенията от точка до точка; предлага сигурност на канала, а не на
съобщенията ( а web услугите си комуникират предимно със SOAP съобщения ); не
предлагат цифрови подписи и др.
       Защитата на ниво съобщения е защита на ниво приложен слой и представлява
сигурност на приложение работещо на даден хост през мрежата до приложението на
другия хост (от точка до точка). То не се интересува от намиращия се под него
транспортен    механизъм.     Всичките   изисквания    за      сигурност        като   цялост,
конфиденциалност и потвърждения могат да бъдат осигурени от този слой.
Приложението само по себе си контролира същността на предаването на данни . За web
услугите има няколко стандарта, отнасящи се до защитата на приложенията на ниво
съобщения. Те са следните:

      XML Encryption - Тази спецификация е дефинирана от W3C и адресира
       изискването за конфоденциалност на данните чрез използване на техники за
       криптиране . Криптираните данни са обвити в определените от спецификацията
       XML тагове . XML Signature - Тази технология , дефинирана от W3C и IETF
       (The Internet Engineering Ta sk Force ) осигурява автентикация и цялостност на
       данните на ниво съобщения;


Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                              20
Защита при създаване на PHP приложения в Интернет 2013



      WS-Security - WS-Security е стандарт, дефиниран от OASIS ( Организация за
       развитие на стандартите за структурирана информация ), и осигурява механизъм
       за автентикация, цялост и конфиденциалност на данните в рамките на едно
       SOAP съобщение. WS-Security се използва като XML Signature и XML
       Encryption спецификациите и определя как да се включат цифрови подписи и
       криптирани данни в едно SOAP съобщение;


      SAML (Security Assertion Markup Language) - Това е стандарт, дефиниран от
       OASIS, осигуряващ механизми за споделяне на информация, свързана с
       автентикация и оторизация, от партниращи си приложения;


Заключение
       Все повече организации разработват и внедряват web услуги за реализиране на
техните бизнес–модели. С увеличаване използването на web услугите нараства и
необходимостта от защита на тези приложения. Сигурността е нещо относително.
Никога едно приложение не може да бъде сто процента сигурно, но използването на
определени методи за защита в дадени ключови моменти във всяко едно приложение
значително намалява риска от злонамерени потребители. В темата са разгледани едни
от най - важните методи за защита на php приложения, които е препоръчително да
бъдат използвани във всяко едно уеб приложение.




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                   21
Защита при създаване на PHP приложения в Интернет 2013




Източници

   1. http://www.w3.org/Encryption/
   2. http://www.w3.org/Signature/
   3. http://review.sagabg.net/kak-da-zashitim-ueb-prilozheniyata-predotvratyavan.html
   4. http://web-tourist.net/login/login/view.php?st=2418
   5. http://www.cphpvb.net/
   6. https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29
   7. http://hsi.iccs.bas.bg/staff/T.Stoilov/papers/Stoilov_EIvanovaCINSO.pdf
   8. Шефлет, Крис. Основи на PHP сигурността. O`Reilly, 2005




Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782                             22

Contenu connexe

Tendances

Защита при създаване на Java приложения в интернет
Защита при създаване на  Java приложения в интернетЗащита при създаване на  Java приложения в интернет
Защита при създаване на Java приложения в интернетTanya Tabakova
 
Защита при създаване на Dot net приложения в интернет
Защита при създаване на Dot net приложения в интернетЗащита при създаване на Dot net приложения в интернет
Защита при създаване на Dot net приложения в интернетMonika Petrova
 
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в ИнтернетЗащита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в ИнтернетВалентин Атанасов
 
реферат мобилни комуникации
реферат мобилни комуникацииреферат мобилни комуникации
реферат мобилни комуникацииgancho_gochev
 
11086 browser-security
11086 browser-security11086 browser-security
11086 browser-securityAtanas Sqnkov
 
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...kirre_66
 
Безопасност и защита при използване на Web браузъри
Безопасност и защита при използване на Web браузъриБезопасност и защита при използване на Web браузъри
Безопасност и защита при използване на Web браузъриgganchev
 
Защита при създаването на PHP-приложения
Защита при създаването на PHP-приложенияЗащита при създаването на PHP-приложения
Защита при създаването на PHP-приложенияNikolay Milkov
 
Обзор на безплатния софтуер за безопасност и защита
Обзор на безплатния софтуер за безопасност и защитаОбзор на безплатния софтуер за безопасност и защита
Обзор на безплатния софтуер за безопасност и защитаGergana Kuzmanova
 
Google security
Google securityGoogle security
Google securityIvanKar
 
Virusi antivirusizashtitnisteni
Virusi antivirusizashtitnisteniVirusi antivirusizashtitnisteni
Virusi antivirusizashtitnisteniStoyanYulianov
 
курсова работа по васил стоилов 12004
курсова работа по васил стоилов 12004курсова работа по васил стоилов 12004
курсова работа по васил стоилов 12004VasilStoilov
 
безопасност и защита на Web приложения
безопасност и защита на Web  приложениябезопасност и защита на Web  приложения
безопасност и защита на Web приложенияkarizka3
 
Big data security word file 116941
Big data security   word file 116941Big data security   word file 116941
Big data security word file 116941borkopinf
 
API Authentication
API AuthenticationAPI Authentication
API Authenticationpetya_st
 

Tendances (15)

Защита при създаване на Java приложения в интернет
Защита при създаване на  Java приложения в интернетЗащита при създаване на  Java приложения в интернет
Защита при създаване на Java приложения в интернет
 
Защита при създаване на Dot net приложения в интернет
Защита при създаване на Dot net приложения в интернетЗащита при създаване на Dot net приложения в интернет
Защита при създаване на Dot net приложения в интернет
 
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в ИнтернетЗащита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернет
 
реферат мобилни комуникации
реферат мобилни комуникацииреферат мобилни комуникации
реферат мобилни комуникации
 
11086 browser-security
11086 browser-security11086 browser-security
11086 browser-security
 
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
 
Безопасност и защита при използване на Web браузъри
Безопасност и защита при използване на Web браузъриБезопасност и защита при използване на Web браузъри
Безопасност и защита при използване на Web браузъри
 
Защита при създаването на PHP-приложения
Защита при създаването на PHP-приложенияЗащита при създаването на PHP-приложения
Защита при създаването на PHP-приложения
 
Обзор на безплатния софтуер за безопасност и защита
Обзор на безплатния софтуер за безопасност и защитаОбзор на безплатния софтуер за безопасност и защита
Обзор на безплатния софтуер за безопасност и защита
 
Google security
Google securityGoogle security
Google security
 
Virusi antivirusizashtitnisteni
Virusi antivirusizashtitnisteniVirusi antivirusizashtitnisteni
Virusi antivirusizashtitnisteni
 
курсова работа по васил стоилов 12004
курсова работа по васил стоилов 12004курсова работа по васил стоилов 12004
курсова работа по васил стоилов 12004
 
безопасност и защита на Web приложения
безопасност и защита на Web  приложениябезопасност и защита на Web  приложения
безопасност и защита на Web приложения
 
Big data security word file 116941
Big data security   word file 116941Big data security   word file 116941
Big data security word file 116941
 
API Authentication
API AuthenticationAPI Authentication
API Authentication
 

Similaire à Защита при създаване на PHP приложения в Интернет

Virusantivirusfirewall
VirusantivirusfirewallVirusantivirusfirewall
Virusantivirusfirewallivso1
 
Php security
Php securityPhp security
Php securityphristov
 
Protection and safety
Protection and safetyProtection and safety
Protection and safetyDimitr Vankov
 
Защита при създаване на java прил.в интернет
Защита при създаване на java прил.в интернетЗащита при създаване на java прил.в интернет
Защита при създаване на java прил.в интернетTanya Tabakova
 
Безопасност и защита при използване на Web браузъри
Безопасност и защита при използване на Web браузъриБезопасност и защита при използване на Web браузъри
Безопасност и защита при използване на Web браузъриgganchev
 
Безопасност и защита при използване на Web-браузъри.
Безопасност и защита при използване на Web-браузъри.Безопасност и защита при използване на Web-браузъри.
Безопасност и защита при използване на Web-браузъри.MarT0oo
 
вируси
вирусивируси
вирусиsouhs
 
безопасност и защита при използване на уеб браузъри
безопасност и защита при използване на уеб браузърибезопасност и защита при използване на уеб браузъри
безопасност и защита при използване на уеб браузъриiradi87
 
с- ми_за-откриване_на_атаки(ids)
с- ми_за-откриване_на_атаки(ids)с- ми_за-откриване_на_атаки(ids)
с- ми_за-откриване_на_атаки(ids)ssalieva
 
безопасност и защита при използване на уеб браузъри
безопасност и защита при използване на уеб браузърибезопасност и защита при използване на уеб браузъри
безопасност и защита при използване на уеб браузъриiradi87
 
безопасност и защита на Windows phone 8
безопасност и защита на Windows phone 8безопасност и защита на Windows phone 8
безопасност и защита на Windows phone 8Деян Димов
 

Similaire à Защита при създаване на PHP приложения в Интернет (20)

Web Applications Security
Web Applications Security Web Applications Security
Web Applications Security
 
500 033 android
500 033 android500 033 android
500 033 android
 
Android
AndroidAndroid
Android
 
Virusantivirusfirewall
VirusantivirusfirewallVirusantivirusfirewall
Virusantivirusfirewall
 
Php security
Php securityPhp security
Php security
 
Protection and safety
Protection and safetyProtection and safety
Protection and safety
 
Защита при създаване на java прил.в интернет
Защита при създаване на java прил.в интернетЗащита при създаване на java прил.в интернет
Защита при създаване на java прил.в интернет
 
Radoslav
RadoslavRadoslav
Radoslav
 
Безопасност и защита при използване на Web браузъри
Безопасност и защита при използване на Web браузъриБезопасност и защита при използване на Web браузъри
Безопасност и защита при използване на Web браузъри
 
Referat
ReferatReferat
Referat
 
Referat
ReferatReferat
Referat
 
Безопасност и защита при използване на Web-браузъри.
Безопасност и защита при използване на Web-браузъри.Безопасност и защита при използване на Web-браузъри.
Безопасност и защита при използване на Web-браузъри.
 
вируси
вирусивируси
вируси
 
безопасност и защита при използване на уеб браузъри
безопасност и защита при използване на уеб браузърибезопасност и защита при използване на уеб браузъри
безопасност и защита при използване на уеб браузъри
 
с- ми_за-откриване_на_атаки(ids)
с- ми_за-откриване_на_атаки(ids)с- ми_за-откриване_на_атаки(ids)
с- ми_за-откриване_на_атаки(ids)
 
Antivirus and firewalls
Antivirus and firewallsAntivirus and firewalls
Antivirus and firewalls
 
безопасност и защита при използване на уеб браузъри
безопасност и защита при използване на уеб браузърибезопасност и защита при използване на уеб браузъри
безопасност и защита при използване на уеб браузъри
 
86101
8610186101
86101
 
безопасност и защита на Windows phone 8
безопасност и защита на Windows phone 8безопасност и защита на Windows phone 8
безопасност и защита на Windows phone 8
 
Virus.info
Virus.infoVirus.info
Virus.info
 

Защита при създаване на PHP приложения в Интернет

  • 1. Курсов проект по Безопасност и защита на тема Защита при създаване на PHP приложения в Интернет Изготвил: Проверил: Антон Шумански доц.д-р.Стефан Дражев спец.Информатика, V курс,гр.59, х.ас. Видилина Кръстева фак.№10782 Икономически Университет – Варна, 2013
  • 2. Защита при създаване на PHP приложения в Интернет 2013 Съдържание 1. Какво представлява PHP. Същност и приложение на езика. ........................................ 3 2. Същност на уеб приложенията ........................................................................................ 4 3. Видове атаки насочени към php приложенията ............................................................. 6 3.1. XSS атаки.................................................................................................................... 6 3.2. Brute-force атаки ............................................................................................................ 6 3.4. Отĸpaдвaнe нa cecия (session hijacking) ................................................................... 7 3.5. SQL инжекция (SQL Injection) ............................................................................... 10 3.6. Атака чрез препълване на буфера (buffer overflow attacks) ................................. 11 3.7. Cross-site request forgery (CSRF) ............................................................................ 12 3.8. Атаки с разпределен отказ от обслужване(DDoS атаки) ..................................... 13 4. Начини за защита от атаки ............................................................................................. 14 4.1. XSS атаки .................................................................................................................. 14 4.2. Brute-force атаки ....................................................................................................... 15 4.3. Отĸpaдвaнe нa cecия ................................................................................................ 16 4.4. MySQL Injection ....................................................................................................... 17 4.5. Атака чрез препълване на буфера .......................................................................... 18 4.6. Cross-site request forgery (CSRF) ............................................................................ 18 4.7. Предпазване от DDoS атаки ................................................................................... 19 4.8. Secure Sockets Layer (SSL) и Transport Layer Security (TLS). .............................. 20 Заключение ............................................................................................................................. 21 Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 2
  • 3. Защита при създаване на PHP приложения в Интернет 2013 Източници ............................................................................................................................... 22 Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 3
  • 4. Защита при създаване на PHP приложения в Интернет 2013 1. Какво представлява PHP. Същност и приложение на езика. PHP представлява скриптов език за програмиране. Той е сравнително нов език. Въпреки това добива голяма популярност сред уеб програмистите поради мощната му функционалност и лесното му използване. Главно се използва за създаването на сървърни приложения и динамично уеб съдържание. PHP е изграден на базата на C и Perl. Едно от главните му предимства е, че е безплатен и се разпространиява под лиценза на BDS. Друга причина за успеха на този език е, че е сървърен език, тоест той се изпълнява от yеб сървър, а не от компютъра на потребителя. По този начин не се изискват големи възможности от компютрите на потребителите, а само от сървърите, които го изпълняват. Може да работи под различни операционни системи (Unix, Linux, Windows, BSD, Mac OS X и други). Също така има възможност да осъществява връзка с няколко вида бази от данни като: MySql, Oracle, PostgreSQL, Sybase и други. 2. Същност на уеб приложенията Уеб приложение e приложение, до което потребителите имат достъп през мрежа като Интернет или интранет. Уеб приложение също може да означава софтуерно приложение, което е написано на поддържан от браузър програмен език (като JavaScript, HTML(маркиращ език), PHP и т.н.) и което разчита обичайните уеб браузъри да успеят да рендерират приложението. Като по кратко определение за уеб приложение може да се разгледа следното: Уеб приложение е софтуер, който работи в браузъра. Днес уеб технологиите позволяват да се създават не само интерактивни и функционални сайтове, но и напълно функционални уеб приложения, с интерфейс, функционалност и бързодействие, които не само не отстъпват на класическите настолни приложения, но и в много отношения ги надминават. Традиционните приложения се инсталират или се стартират от диск или друга медия. Те разчитат на дадена среда, която в общия случай се осигурява от операционната система, а в други случаи е допълнително инсталирана на съответния компютър. Стартирайки едно традиционно (настолно) приложение, то зарежда интерфейс, без необходимостта от посредствени програмни средства. При уеб приложенията, за да се стартира приложението се използва браузър. Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 4
  • 5. Защита при създаване на PHP приложения в Интернет 2013 Едни от оснивните предимства на уеб приложението са следните:  Ниски разходи за разработка - И като време и като ресурси, разработката на уеб приложения е значително по-евтина от тази на настолен софтуер. В общия случай уеб приложенията се пишат на същите програмни езици, които се използват за изработка на уеб сайтове. От една страна тези програмни езици са много популярни и има много програмисти, които умеят да пишат на тях, а от друга - съществуват и много готови ресурси, които могат да намалят времето за разработка и съответните необходими ресурси;  Независими от операционната система - Понеже работят в браузър, уеб приложенията са общо взето независими от конкретната операционна система;  Не изискват инсталация - За да използва дадено уеб приложение, потребителят не се налага да го инсталира, както е с много от настолните приложения. Приложението се стартира директно без предварителна инсталация;  Достъпни отвсякъде посредством Интернет - В общия случай уеб приложенията се намират на сървър, свързан с Интернет и са достъпни от всяко устройство, свързано с Интернет; Сигурността е важна част при изграждането и функционирането на всички разпределени компютърни приложения. Това важи с пълна сила за приложенията, представляващи или предлагащи web услуги, тъй като те се изграждат въз основата на общи стандарти, осигуряващи междуплатформена съвместимост и прозрачно местоположение на отделните компоненти. С все по-масовото използване на web услугите в изграждането на разпределените приложения, нараства и необходимостта от разработване и реализация на адекватни механизми за защита на такива приложения. По-долу ще разгледаме някои от основните методи за атака и съответните им механизми за защита. Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 5
  • 6. Защита при създаване на PHP приложения в Интернет 2013 3. Видове атаки насочени към php приложенията 3.1. XSS атаки XSS е съкращение от Cross Site Scripting. Обикновено се срещат в уеб приложения и позволява на атакуващите да инжектират скрипт от страна на клиента в уеб страници, гледани от други потребители. XSS скриптовете могат да бъдат използвани от нападателите, за да заобиколят контрола на достъп на даден сайт. Този тип скриптове представляват около 84% от всички уязвимости в сигурността. Техният ефект може да варира от дребна неприятност, до значителен риск за сигурността, в зависимост от чувствителността на данните, обработвани от уязвимия сайт. XSS уязвимости са били докладвани и експлоатирани от 1990 г. насам. Видни обекти, засегнати в миналото са например сайтовете Twitter, Facebook, MySpace, Orkut и други. Няма единно прието разделение на различни видове XSS атаки, но неофицялно те се радзелят на два основни вида: непостоянни (non-persistent) и устойчиви (persistent). При устойчивите, неоторизираните тагове се съхраняват постоянно на уеб- сървъра на жертвата - примерно, използва се SQL инжектиране, за да се заразят определени полета в базата данни. Оттам нататък всеки, който посещава сайта, може да е изложен на опасност. Вторият вид атаки, ( непостоянни ), са трудни за засичане и елиминиране. При тях неоторизираните скриптови тагове не съществуват на засегнатия уеб-сървър. Не могат да се търсят в базата данни или файловете. Този тип XSS атаки се възползват от слаби техники за валидиране на входящото съдържание в сървъра. Те го лъжат така, че да го накарат да приеме злонамерените редове и после сляпо да ги праща като част от отговора, който подава към браузъра. 3.2. Brute-force атаки Методът груба-сила (Brute-force attacks) се състои в това, да се изпробват всички възможности за ключ. Всъщност, „разбиването” на даден шифър се състои в това, да се Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 6
  • 7. Защита при създаване на PHP приложения в Интернет 2013 намери начин, по-бърз от груба-сила. Например, ако един шифър има ключ, с 250 възможности, brute-force очаква разбиването да стане с 249 проверки. Принципът на този тип атаки е да обходи всички възножни комбинации, докато не достигне до използваната. Обикновено се прилага върху сайтове, които изискват потребителко име и парола. Съществуват най-различни програми, които извършват brute-force атаки. Те са свободно достъпни в интернет. Пример за такава програма е BrutusA2. 3.3. Изпълнение на злонамерени файлове (malicious file execution) Тази уязвимост се появява в много уеб приложения. Главно в такива приложения, в които позволяват URL параметри на имената на файловете , за да се включат, като URL адреси или препратки към файловата система. В тези слочаи може да се подадат от „нападателя“ разнични файлове, които да се изпълнят на сървъра и да удовлетворят целите на „нападателя“ - да му предоставят желаната от него информация или да повредят информация. Изпълнение на злонамерени файлове може да се набюдава и когато потребители се опитват да качат файл в даден сайт, чрез форма за качване на файлове. Потреителите могат да се опитат да качат техен скрипт и по този начин да осъществят злонамерените си дейстия. 3.4. Отĸpaдвaнe нa cecия (session hijacking) Почти всички интернет приложения използват потребителски сесии, за да създават по-персонализирана среда на своя уеб сайт. Сесията на всеки отделен потребител се съхранява и управлява на сървъра чрез уникален идентификационен номер (session ID). Точно тези идентификатори са често основна цел на атакуващите, които чрез тях могат да “откраднат самоличността” на потребител. Повечето сървъри вече имат изградени защити или поне добри съвети за практики за предпазване на тези ключове, главно от три класа атаки:  Подслушване – вариант, при който се извършва т.нар. session hijacking от злонамерен човек подслушващ трафика между клиент и сървър; Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 7
  • 8. Защита при създаване на PHP приложения в Интернет 2013  Предсказване – вече остаряла, но не задължително неработеща, техника за намиране на session id на друг потребител на базата на статистика. Днешните сървъри поддържат достатъчно дълги ключове със сравнително надеждни алгоритми за генериране.  Налучкване - известни още като Brute Force атаки. При защитата потребителските session id от страна на сървъра може да приемем, че съвременните уеб сървъри са достатъчно надеждни срещу такъв род атаки. HTTP е протокол за комуникация, в който не се съхранява текущото състояние на връзката. За въвеждане на такава функционалност са измислени потребителските сесии. Базовата идея е сървъра да генерира вече споменатите идентификационни номера/ключове в някой от ранните моменти на взаимоотношение с потребителя. Сървърът изпраща към браузъра на потребителя тези ключове и при нова заявка от потребителя очаква да му бъде “върнат” същия session id. По този начин session id са се превърнали и в идентификационен признак за потребителите, като приложенията ги използват, за да запазват допълнителна информация за потребителя (обикновено променливи) и създават усещане за индивидуалност в потребителите.Поради относителната сигурност много често session ID се използват като метод за автентикация. Това позволява гъвкавост на приложенията, така че да не питаме потребителя непрекъснато за име и парола, дигитален сертификат или друг тип проверка на самоличност, а вместо това да стартираме уникална потребителска сесия и да я използваме като автентикатция след първото му успешно влизане в системата. Така session IDs се превръщат в нещо като временни пароли за достъп до системата. Поради тази причина те са много апетитна информация за хакерите - на практика позволяват директен достъп до системата чрез чужд профил. На схемата по-долу е покан един пример за използване на чужда сесия. Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 8
  • 9. Защита при създаване на PHP приложения в Интернет 2013 Фиг. 1, Използване на чужда сесия Първо атакуващият (в случая също легитимен потребител на системата) се автентикира на сървъра (1) и получава дадено session ID (2). След това атакуващия изпраща връзката http://online.worldbank.dom/login.jsp?sessionid=1234 към потребителя, опитвайки се да го накара да я последва (3). Потребителя последва връзката и отива на страницата за въвеждане на име и парола на сървъра (4). В този момент сървъра вижда, че потребителя вече е стартирал потребителска сесия и няма нужда от създаване на нова. Накрая потребителят предава името и паролата си към скрипта за автентикация и сървърът му дава права за достъп до личния му банков акаунт. В този момент атакуващия, знаейки неговото session ID, има достъп до личните данни на клиента. В този момент се казва, че потребителят е “проникнал в сесията на атакуващия”. Друг вариант за атака е кражбата на бисквитките, в които се съхранява session id-то. На схемата по-долу е показан принципа на кражба на бисквитки. Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 9
  • 10. Защита при създаване на PHP приложения в Интернет 2013 Фиг. 2 Кражба на бисквитки Атакуващият намира XSS пробив в услуга на сървъра www.worldbank.dom, която е от същият домейн както online.worldbank.dom. Изпраща се адреса към потребителя (1), потребителя отива на дадения адрес (2) и приема cookie от www.worldbank.dom (3). Така cookie е валидно и за другият сървър online.worldbank.dom. Когато потребителят влезе в банковия си акаунт (4), атакуващият може да направи пробив (5). Друга “неприятна” възможност на браузърите е да могат да създават cookie чрез meta таг: <meta http-equiv=Set-Cookie content=”sessionid=1234″>, при което се постига същия ефект както с javascript-a. 3.5. SQL инжекция (SQL Injection) SQL инжекциите са начин за променяне на заявката към дадена база данни - MySQL, MSSQL или друга. Основната цел е да се открадне информация от базата данни или в по-редки случаи да се увреди информацията. Базада данни е основното хранилище на информация за всяка една система. В уеб системите в нея обикновено се съхранява поверителна информация, като потребителски имена, пароли и други лични Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 10
  • 11. Защита при създаване на PHP приложения в Интернет 2013 данни за всеки един потребител на системата. Именно тези данни са главната цел на недобронамерените потребители. Например ако в дадено приложение съществува следната заявка: SELECT * FROM tablica WHERE id = '$id' При нормално изпълнение на скрипта променливата $id ще съдържа номер, но ако някой напише на мястото на цифрата това: 5'; DROP TABLE име на таблица; -- ще може да съсипе цялата база данни. Тази инжекция използва GET (променливи подадени чрез http адреса). Може да се направи чрез POST, SESSION, COOKIE и дори SERVER ако се използват от системата. 3.6. Атака чрез препълване на буфера (buffer overflow attacks) Буферът е временна област за съхранение на данни. Когато там се поставят повече данни, отколкото е предвидено първоначално от даден програмен и системен процес, допълнителните данни ще го препълнят, откъдето произлиза и името, причинявайки част от данните да изтекат към други буфери, което може да разруши данните, които те съдържат или да запише върху тях. При атака за препълване на буферите препълващите данни понякога съдържат специфични инструкции за дейности, проектирани от хакери или злонамерени потребители. Например данните могат да превключат отговор, който уврежда файловете, променя данните или разкрива частна информация. Хакерите биха използвали буферното препълване, за да се възползват от програма, която очаква въвеждане от потребителя. Има два типа буферно препълване - стек базирани и хип базирани. Хип (от heap – купчина) базираните са по-трудни за изпълнение и затова се срещат по-рядко. Те атакуват приложението чрез „наводняване“ на пространството памет, запазено за програмата. Стек (от stack - купчина) базираното препълване на буфера, което се среща по-често сред хакерите, експлоатира приложения или програми, като използва това, което е известно като стек - пространство от паметта, използвано за съхранение на потребителски въвеждания. Един стек може да поддържа само определено количество данни и ако входният низ е по-дълъг от резервираното пространство, резултатът е препълване, създаващо дупка в сигурността. Злонанерени хакери търсят такива пробойни със специално Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 11
  • 12. Защита при създаване на PHP приложения в Интернет 2013 написани команди, които причиняват препълване и задействат атаката. След като злонамерената команда е причинила препълване, хакерът все още трябва да изпълни командата, като посочи адрес за връщане, който сочи към командата. Препълването на буфера „счупва“ частично приложението, но то се опитва да се възстанови, като отива към адреса за връщане, който е бил пренасочен към злонамерената команда от хакера. Когато атаката с препълване на буфера задейства командата, намерена в новия адрес за връщане, програмата смята, че все още работи. Това означава, че командният прозорец, който е бил отворен, работи със същия набор изпълними разрешения, както приложението, което е било компрометирано, позволявайки на хакера да получи пълен контрол над операционната система. 3.7. Cross-site request forgery (CSRF) Cross-site request forgery (CSRF) е широко използвана уязвимост в уеб приложенията. Това е атака, чиито трик е да накара жертвата да зареди страница, която съдържа зловреден код. Този зловреден код наследява идентичност и привилегиите на жертвата за извършване на нежелани действия от името на жертвата, като променяне на е-мейл адрес на жертвата, домашен адрес или парола, или извършването на покупка, превод на пари и други. Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 12
  • 13. Защита при създаване на PHP приложения в Интернет 2013 Фиг. 3 Принцип на работа на CSRF CSRF атакува целеви функции, които водят до промяна в състоянието на сървъра, но може да се използват за достъп до чувствителни данни. Най-често зловредният код представлята IMG или IFRAME и трудно може да се идентифицира. Реално CSRF представлява инжектиране на заяква в мрежата посредством уеб браузър. Това води до заразяване на отворените от браузъра сайтове. Този вид атаки са доста популярни, но и предпазването от тях се реализира сравнително лесно. CSRF атаки са известни също и с редица други имена, включително XSRF "Sea Surf", Session Riding и Cross-Site Reference Forgery. 3.8. Атаки с разпределен отказ от обслужване(DDoS атаки) Атаката с рапределен отказ от обслужване (DDoS) може да бъде пагубна за една организация, струвайки й време и пари, като по същество изключи корпоративните системи. Хакерите извършват DDoS атака, като експлоатират пролуки и уязвимости в Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 13
  • 14. Защита при създаване на PHP приложения в Интернет 2013 компютърната система (често уеб сайт или уеб сървър), за да се позиционират като главна система. След като веднъж са се поставили в положение на главна система, хакерите могат да идентифицират и комуникират с другите системи за по - нататъшно компрометиране. След като нарушителят е поел контрол над множество компрометирани системи, той може да възложи на машините да започнат някоя от многото атаки за препълване, докато целевата система се препълни с фалшиви искания за трафик, което ще доведе до отказ на услуга за ползвателите на тази система. Потокът от входящите съобщения от компрометираните системи, ще причини спиране на системната цел и отказ от услуги към нея, което води до невъзможност за достъп на потребителите до каквото и да било, и следователно ще струва на организацият време и пари. 4. Начини за защита от атаки 4.1. XSS атаки За да се защити php приложение от xss атаки трябва много добре да се филтрират полетата в прилежението, където се въвежда информация и съответно тази информация после се показва на екрана. Пример за такова поле е поле за коментари в блог. Символи, които не трябва да бъдат разрешавани за въвеждане в полето са: < > ( ) { } + ! @ $ % &* и други. Основни правила, които се спазват при наличието на форми в php приложение са:  Всичко трябва да бъде конвертирано в UTF-8;  Проверка дали дадена стойност съществува;  Премахване интервалите в началото и края (trim);  Премахване, ако има, повече от 1 интервал между думите ( $d = preg_replace('/ss+/', ' ', $_POST['comment']);); В такива случаи много подходящо е да се използва и вградена функция в php: $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); Други два подхода, които могат да се съчетаят с филтрирането на входящите данни е „алгоритъм за разстояние“ и „отпечатък на браузъра“. Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 14
  • 15. Защита при създаване на PHP приложения в Интернет 2013 Php разполага с библиотеки за определяне на местонахождението на потребителя. Алгоритъмът за разстояние представлява скрипт, който следи потребителя в кой град се намира и ако се установи различно междунахождение на един и същи потребите в рамките на определено време, да се предприемат съответните мерки. Подходът „Отпечатък на браузъра“ представлява запазване в сесия на типа и версията на браузъра на потребителя. Тази информация може да се криптира и да се проверява. По този начин ако сесията бъде открадната от друг човек, няма да може да бъде използвана. 4.2. Brute-force атаки Защита от brute-force атаки от потребителска страна:  Като превенция от brute-force атаки се препоръчва използването на дълги пароли съчетани от думи и цифри. Думите, които ще бъдат използвани не е препоръчително да са стандартни (admin, root, code, pass и т.н.), поради факта че brute force използва комбинацията от най-често използваните думи и речникови думи;  Друго задължително условие е да се използват различни пароли за различни сайтове. Това се налага заради фишинг сайтовете, които са направени само да събират информация от потребителите;  Също така се препоръчва честа смяна на паролите. По този начин ако някои злонамерен потребител е разбрал дадена парола, достъпът до данните може да бъде отново ограничен. Защита от brute-force атаки от програмна страна:  Използване на Captcha (Completely Automated Public Turing test to tell Computers and Humans Apart) в превод – Напълно автоматизирана проверка за разграничаване на човек от компютър. Идея на метода: 1. Генериране на произволен код (цифри и букви); Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 15
  • 16. Защита при създаване на PHP приложения в Интернет 2013 2. Записване на този код в потребителската сесия; 3. Изобразяване на този код посредством PHP (като картинка). Кода се изобразява на картинката като всяка буква е в различен шрифт, големина, цвят. Допълнително се добавя шум в картинката и понякога блър (замъгляне) Това се прави с цел затрудняване на ботовете да прочетат кода; 4. Дадената картинка се показва на потребителя и той въвежда кода от картинката в текстово поле. След попълването на полето, стойността му се взима и се сравнява с тази записана в сесията. Ако кода съвпада то е попълнена от потребител, ако не съвпада тогава се счита, че това е бот;  Втори най-използван метод е блокиране на ИП при неколкократни неуспешни опити.(Пример: Ако потребител въведе повече от трипъти грешна парола автоматично се блокира неговото ИП, за определен период от време.) 4.3. Отĸpaдвaнe нa cecия Справянето с проблема “фиксирана сесия” е в самото приложение. Именно то трябва да добавя функционалност за справяне с проблема. Задължението на сървъра, където се изпълнява уеб-приложението, е да защитава session id от “открадване” (session hijacking), но не и от фиксиране. Приложението трябва да се грижи за:  Игнориране на каквото и да session id подадено от потребителя, независимо дали сървъра на който се изпълнява е с разрешителен или стриктен режим. По този начин категорично се задава стриктен режим на достъп до сесиите;  Да не се създават сесии преди потребителя да е влязъл в системата. По този начин е сигурно, че атакуващият е активен потребител и може да бъде по-лесно проследен;  Използването на таймер за валидност на сесиите;  Да не разрешава едновременно влизане в системата на един потребител от две различни места;  Унищожаването на сесия трябва да става на сървъра. Не трябва да се разчита Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 16
  • 17. Защита при създаване на PHP приложения в Интернет 2013 единствено на изтриване на дадено cookie от браузъра на клиента;  Винаги трябва да се предоставя възможност на потребителя за “изход” от системата. Така ще се унищожи както текущата сесия, така и евентуални предишни, когато потребителя е забравил да излезе стандартно от системата; 4.4. MySQL Injection Съществуват различни функции, които по един или друг начин модифицират входният текст, за да го направят безвреден. Някои от тези функции са:  htmlspecialchars($tekst); Променя текста, като замeства всички специални символи за HTML като < > % & " и други с техните аналози в HTML. Това ги променя така, че те могат да се виждат в браузера, но той няма да ги счита за HTML и те няма да се изпълнят. Това предпазва от този тип "атаки", които прехвърлят потребителя към други страници. Те подават HTML, а тази функция го неутрализира.  strip_tags($tekst); Променя текста, като изтрива всякакви HTML тагове, но информацията която се подава бива променена и неформатирана.  trim($tekst); Премахва всички празни места, таблуации, нови редове и други подобни.  addslashes($tekst); Основната защита срещу SQL инжекции. Слага „“ пред всички кавички, така че SQL да ги игнорира. Основната цел е филтриране на данните, които се подават към заявката. Не трябва да се има доверие на потребителя, а трябва всички данни да бъдат филтрирани. След като е сигурно,че са филтрирани могат да бъдат подадени към заявката. Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 17
  • 18. Защита при създаване на PHP приложения в Интернет 2013 4.5. Атака чрез препълване на буфера Една от основните препоръки е дa се избягва използването на библиотечни файлове. Библиотечните файлове, които се използват в езиците за програмиране и по природа са несигурни, са цел за хакерите по време на атаките срещу приложенията. Всяка слабост, намерена от хакера в библиотечния файл, ще съществува също във всички приложения, които използват библиотечни файлове, давайки на хакерите блестяща цел за потенциална атака. Важно е също да се филтрират вероятни опасни HTML кодове и знаци, които могат да причинят проблеми с базата данни. Например в ASP кода апострофът, кавичките, амперсантът са запазени символи. Тези запазени символи не могат да се включват в данните, въвеждани от потребителите или те ще причинят счупване на приложението. Важно е да се филтрират и да се заменят с други, за да се избегнат усложнения и проблеми. Тестването на приложенията е задължителен етап преди внедряването им. Тестването трябва да включва както и въвеждане на некоректрни данни, така и опит за разпробиване и хакване преди да бъде пуснато онлайн в Интернет. 4.6. Cross-site request forgery (CSRF) Защитата от този вид атаки е сравнително проста, но препоръчителна. Идеята е да се създаде сесия с уникален ключ. Същият ключ да се генерира в скрито поле в дадената форма, която ще се проверява за CSRF. При изпращането на формата двата ключа се сравняват. Ако са еднакви означава, че всичко е наред и изпращането на формата може да продължи. Чрез php код ситуацията може да бъде представена по следния начин: <?php session_start(); if(isSet($_POST['submit'])) { if(isSet($_SESSION['token'] == $_POST['token'])) { echo 'ОК'; } else header("Location: ./index.php"); Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 18
  • 19. Защита при създаване на PHP приложения в Интернет 2013 } } else { $token = md5(uniqid(rand(), true)); $_SESSION['token'] = $token; $form = ' <form method="POST" action=""> Текст: <input type="text" name="message" /><br /> <input type="hidden" name="token" value="' . $token . '" /> <input type="submit" name="submit" /> </form>'; echo $form; } ?> 4.7. Предпазване от DDoS атаки Предотвратяването на DDoS атака може да бъде трудно, тъй като тя е предизвикателство за това как да се направи разграничение между зловредна заявка за трафик и легитимна такава, тъй като те използват еднакви протоколи и портове. Въпреки това съществуват няколко стъпки, които могат да се предприемат за защита на системите от разпределени атаки, предизвикващи отказ от услуги: Необходимо е да има наличен излишък от честотна лента във връзката на организацията с интернет: Това е една от най-лесните защити срещу DDoS, но може да се окаже доста скъпа. Когато се използва много честотна лента за обслужване на заявките за трафик, това може да помогне за предпазване от ниско ниво DDoS атаки. Освен това, колкото по-широка честотна лента има дадена организация, толкова повече трябва да направи нападателят, за да запуши връзката й. Препоръчително е да се използва система за откриване на прониквания (Intrusion Detection System, IDS). Няколко от съвременните системи за откриване на прониквания са снабдени с технологии за защита на системите от DDoS атаки, като използват методи за проверка и потвърждаване на връзката и за предотвратяване достигането до корпоративните сървъри на определени заявки. Съществуват устройства за DDoS защита и предотвратяване, които са Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 19
  • 20. Защита при създаване на PHP приложения в Интернет 2013 конструирани специално за откриване и осуетяване на DDoS атаки. Препоръчително е и да се поддържа резервна интернет връзка с отделна база с интернет адреси за критични потребители. Това представлява алтернативен път, ако първичната верига е претоварена със злонамерени заявки. 4.8. Secure Sockets Layer (SSL) и Transport Layer Security (TLS). SSL е създаден от Netscape и се използва широко за защита на web приложения на транспортно ниво. SSL работи като използва криптиране с частен ключ. Ключът се предава по SSL връзка. SSL осигурява функционалност за защита на данните, включващи автентикация, цялостност и конфиденциалност на предаваната информация. TLS е стандарт предложен от IETF и базиращ се на SSL 3.0. Двата протокола не са взаимно съвместими, но TLS има възможност да работи като SSL 3.0 обратна съвместимост. За сигурната работа на web услугите не е уместно да се използват основните механизми на защита на транспортно ниво (SSL/TLS) и / или на мрежово ниво (IPsec), поради следните причини: осигуряват защита на междинно ниво, а не защита на приложенията от точка до точка; предлага сигурност на канала, а не на съобщенията ( а web услугите си комуникират предимно със SOAP съобщения ); не предлагат цифрови подписи и др. Защитата на ниво съобщения е защита на ниво приложен слой и представлява сигурност на приложение работещо на даден хост през мрежата до приложението на другия хост (от точка до точка). То не се интересува от намиращия се под него транспортен механизъм. Всичките изисквания за сигурност като цялост, конфиденциалност и потвърждения могат да бъдат осигурени от този слой. Приложението само по себе си контролира същността на предаването на данни . За web услугите има няколко стандарта, отнасящи се до защитата на приложенията на ниво съобщения. Те са следните:  XML Encryption - Тази спецификация е дефинирана от W3C и адресира изискването за конфоденциалност на данните чрез използване на техники за криптиране . Криптираните данни са обвити в определените от спецификацията XML тагове . XML Signature - Тази технология , дефинирана от W3C и IETF (The Internet Engineering Ta sk Force ) осигурява автентикация и цялостност на данните на ниво съобщения; Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 20
  • 21. Защита при създаване на PHP приложения в Интернет 2013  WS-Security - WS-Security е стандарт, дефиниран от OASIS ( Организация за развитие на стандартите за структурирана информация ), и осигурява механизъм за автентикация, цялост и конфиденциалност на данните в рамките на едно SOAP съобщение. WS-Security се използва като XML Signature и XML Encryption спецификациите и определя как да се включат цифрови подписи и криптирани данни в едно SOAP съобщение;  SAML (Security Assertion Markup Language) - Това е стандарт, дефиниран от OASIS, осигуряващ механизми за споделяне на информация, свързана с автентикация и оторизация, от партниращи си приложения; Заключение Все повече организации разработват и внедряват web услуги за реализиране на техните бизнес–модели. С увеличаване използването на web услугите нараства и необходимостта от защита на тези приложения. Сигурността е нещо относително. Никога едно приложение не може да бъде сто процента сигурно, но използването на определени методи за защита в дадени ключови моменти във всяко едно приложение значително намалява риска от злонамерени потребители. В темата са разгледани едни от най - важните методи за защита на php приложения, които е препоръчително да бъдат използвани във всяко едно уеб приложение. Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 21
  • 22. Защита при създаване на PHP приложения в Интернет 2013 Източници 1. http://www.w3.org/Encryption/ 2. http://www.w3.org/Signature/ 3. http://review.sagabg.net/kak-da-zashitim-ueb-prilozheniyata-predotvratyavan.html 4. http://web-tourist.net/login/login/view.php?st=2418 5. http://www.cphpvb.net/ 6. https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29 7. http://hsi.iccs.bas.bg/staff/T.Stoilov/papers/Stoilov_EIvanovaCINSO.pdf 8. Шефлет, Крис. Основи на PHP сигурността. O`Reilly, 2005 Антон Шумански, спец.Информатика, V курс, гр.59, фак. №10782 22