SlideShare a Scribd company logo
Защита на Web приложения

     Cross Site Scripting, SQL Injection




Изготвил:
Николай Николов
Приложна информатика – ДОВО
VII курс, I гр., Ф № 5494
Web приложения

   Web сайтове
   Web приложенията - процес на
    въвеждане, обработване и запазване на
    информацията се извършва в Глобалната
    мрежа
   Предимства – лесен достъп, постоянна
    активност (24/7), високо ниво на сигурност
    на сървърите, разнообразие от модули за
    управление на данните, достъпни цени
Web приложения

   Недостатъци - пряката зависимост на системата
    за управление от Интернет-връзката,
    натоварването на сървъра, където се намира
    приложението или където се записва
    информацията, възможността за поява на
    непозволени действия от страна на някои
    потребители спрямо системата
   Атаки - фaлшиви HTTP зaявки, brute-force aтaки,
    пyбличнo излaгaнe нa кoд, oткpaдвaнe
    (фикcиpaнe) нa cecия, MySQL Injection и XSS
Cross Site Script (XSS) атаки
   Атака, която използва уязвимост на
    приложението и ”вмъква” нежелан код,
    който се изпълнява в браузъра на крайния
    потребител.
   Видове XSS атаки:
       Директни: Атакуващият предоставя връзка или
        друг вид “маскиран” код към клиента.
       Статични: Нежелания код се вмъква в базата
        данни след което се изчавка уязвимата
        страница да бъде отворена.
       DOM: Това са XSS атаки от т.нар. локално
        ниво.
Защита от XSS атаки

   Никога не трябва да се вярваме на
    потребителите на даден сайт.
   Входящите данни трябва да бъдат филтрирани.
   Определени знаци се прехвърлят в съответните
    им HTML entry:
       & -> &
       < -> &lt;
       > -> &gt;
       ” -> &quot;
       ‘ -> &#x27;
       / -> &#x2F;
Защита от XSS атаки

   Не слагайте лични данни и
    “коментари” на една страница
   HTTPOnly флаг на бисквитките
   На IP не може да се разчита
XSS Атака-примерен код
  Кодът на нашата атака, който може да се постави в което и да е от
   текстово полета:
<div style="text-align: center;"><p style="font-family: Verdana; font-style:
normal; font-variant: normal; font-weight: bold; font-size: 36px; line-height:
normal; font-size-adjust: none; font-stretch: normal; color: rgb(255, 0,
   0);">This
page has been Hacked!</p><img
   src="http://ha.ckers.org/images/stallowned.jpg"
border="0"><p style="font-family: Arial; font-style: italic; font-variant:
   normal;
font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust:
   none;
font-stretch: normal; color: rgb(221, 221, 221);">XSS
   Defacement</p></div>
XSS Атака - резултат
Защита от SQL Injection

   SQLi се използва за злонамерено изпълнение на
    SQL заявка към базата данни.
   SQL инжeктиpaнeтo e нaй-чecтo cpeщaнaтa
    yязвимocт в PHP пpилoжeниятa.
Пример - атака

Скpипт зa вxoд в cиcтeмaтa имa cинтaкcиc oт poдa:
$sql = "SELECT * FROM users WHERE username =
  '$user' AND password = '$pass'".
Aкo към тaзи зaявкa нapyшитeлят пoдaдe eдиничнa
  кавичка зa пoтpeбитeлcкo имe и пpoизвoлнa
  пapoлa, зaявкaтa щe въpнe cлeднaтa гpeшкa:
You have an error in your SQL syntax; check the
  manual that corresponds to your MySQL server
  version for the right syntax to use near 'WHERE
  username = ' ' ' AND password = 'sometext
Защита

SQL инжeктиpaнeтo може да бъде
 избегнато. Вcички пpoмeнливи, кoитo ce
 вкapвaт в eднa MySQL зaявкa, тpябвa дa
 бъдaт филтpиpaни c фyнкциятa
 mysql_real_escape_string(). B гopния
 пpимep, тoвa ca пpoмeнливитe $user и
 $pass. Cинтaкcиcът e както cлeдвa: $user =
 mysql_real_escape_string($user) и тaкa зa
 $pass.
Защитни функции

   htmlspecialchars() - преобразува специални
    знаци в html единици
   addslashes() - екранира специалните знаци
    на даден стринг
   trim() - премахва знаци в началото и края
    на даден стринг
   htmlentities() - преобразува всички
    подходящи знаци в HTML единици и е ..
    сходна с htmlspecialchars();
Допълнителна защита

   Може да бъде написан на скрипт, който
    проверява за грешни пароли - при 3
    грешни опита за вход с грешна парола в
    базата данни, акаунта се заключва за
    определено време.
Причини за уязвимости към SQLi

   Без филтриране на входящите данни
   Уязвимост в сървъра на базата данни
Методи за защита от SQLi

   Филтриране на данните
   Изключване на докладите за грешки.
   Създаване на потребител, с по-малко
    привилегии.
   Максимална стойност

More Related Content

Viewers also liked

"Gifted" Iteration Project
"Gifted" Iteration Project"Gifted" Iteration Project
"Gifted" Iteration Project
mglover92
 
Cloud Computing & Business Intelligence
Cloud Computing & Business IntelligenceCloud Computing & Business Intelligence
Cloud Computing & Business IntelligenceSudip Chatterjee
 
WMSTR 2013
WMSTR 2013WMSTR 2013
WMSTR 2013
Don Aberle
 
роль методического объединения в повышении квалификации учителя
роль методического объединения в повышении квалификации учителяроль методического объединения в повышении квалификации учителя
роль методического объединения в повышении квалификации учителяElena Shamsuddinova
 
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407Pitchayut Wongsriphuak
 
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407Pitchayut Wongsriphuak
 
Pb 62-2011 (lamp)
Pb 62-2011 (lamp)Pb 62-2011 (lamp)
Pb 62-2011 (lamp)Divi Cell
 
"Outstanding in the Field" and "Singing Hills Dairy"
"Outstanding in the Field" and "Singing Hills Dairy" "Outstanding in the Field" and "Singing Hills Dairy"
"Outstanding in the Field" and "Singing Hills Dairy"
Don Aberle
 
Farm Equipment Disasters
Farm Equipment DisastersFarm Equipment Disasters
Farm Equipment Disasters
Don Aberle
 
Mantra deddy corbuzier
Mantra   deddy corbuzierMantra   deddy corbuzier
Mantra deddy corbuzierganasing
 
Machinery Pete: Used Farm Equipment Value Index - 4th Quarter 2012
Machinery Pete: Used Farm Equipment Value Index - 4th Quarter 2012Machinery Pete: Used Farm Equipment Value Index - 4th Quarter 2012
Machinery Pete: Used Farm Equipment Value Index - 4th Quarter 2012
Don Aberle
 
DFB - Youth Development Programme
DFB - Youth Development Programme DFB - Youth Development Programme
DFB - Youth Development Programme
Fundação Real Madrid
 

Viewers also liked (13)

"Gifted" Iteration Project
"Gifted" Iteration Project"Gifted" Iteration Project
"Gifted" Iteration Project
 
Mis report
Mis reportMis report
Mis report
 
Cloud Computing & Business Intelligence
Cloud Computing & Business IntelligenceCloud Computing & Business Intelligence
Cloud Computing & Business Intelligence
 
WMSTR 2013
WMSTR 2013WMSTR 2013
WMSTR 2013
 
роль методического объединения в повышении квалификации учителя
роль методического объединения в повышении квалификации учителяроль методического объединения в повышении квалификации учителя
роль методического объединения в повышении квалификации учителя
 
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
 
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
คลื่นวิทยุ(กฤตัชญ์ หัตถกร)407
 
Pb 62-2011 (lamp)
Pb 62-2011 (lamp)Pb 62-2011 (lamp)
Pb 62-2011 (lamp)
 
"Outstanding in the Field" and "Singing Hills Dairy"
"Outstanding in the Field" and "Singing Hills Dairy" "Outstanding in the Field" and "Singing Hills Dairy"
"Outstanding in the Field" and "Singing Hills Dairy"
 
Farm Equipment Disasters
Farm Equipment DisastersFarm Equipment Disasters
Farm Equipment Disasters
 
Mantra deddy corbuzier
Mantra   deddy corbuzierMantra   deddy corbuzier
Mantra deddy corbuzier
 
Machinery Pete: Used Farm Equipment Value Index - 4th Quarter 2012
Machinery Pete: Used Farm Equipment Value Index - 4th Quarter 2012Machinery Pete: Used Farm Equipment Value Index - 4th Quarter 2012
Machinery Pete: Used Farm Equipment Value Index - 4th Quarter 2012
 
DFB - Youth Development Programme
DFB - Youth Development Programme DFB - Youth Development Programme
DFB - Youth Development Programme
 

Similar to 5494 n nikolov_zashtita_ppt

PHP Security
PHP SecurityPHP Security
Bezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojeniaBezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojenia
Martin Kenarov
 
Penetration testing for dummies
Penetration testing for dummiesPenetration testing for dummies
Penetration testing for dummies
Code Runners
 
Сигурност при разработката на WordPress разширения
Сигурност при разработката на WordPress разширенияСигурност при разработката на WordPress разширения
Сигурност при разработката на WordPress разширенияVeselin Nikolov
 
Защита при създаването на PHP-приложения
Защита при създаването на PHP-приложенияЗащита при създаването на PHP-приложения
Защита при създаването на PHP-приложения
Nikolay Milkov
 
Drupal Security
Drupal SecurityDrupal Security
Drupal Security
Martin Martinov
 
Защита при създаване на Dot net приложения в интернет
Защита при създаване на Dot net приложения в интернетЗащита при създаване на Dot net приложения в интернет
Защита при създаване на Dot net приложения в интернетMonika Petrova
 
Защита при създаване на Java приложения в интернет
Защита при създаване на  Java приложения в интернетЗащита при създаване на  Java приложения в интернет
Защита при създаване на Java приложения в интернет
Tanya Tabakova
 
Чести проблеми в сигурността на уеб проектите
Чести проблеми в сигурността на уеб проектитеЧести проблеми в сигурността на уеб проектите
Чести проблеми в сигурността на уеб проектитеVeselin Nikolov
 
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в ИнтернетЗащита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в ИнтернетВалентин Атанасов
 
FABRIQ - Presentation Nakov 0.8
FABRIQ - Presentation Nakov 0.8FABRIQ - Presentation Nakov 0.8
FABRIQ - Presentation Nakov 0.8Svetlin Nakov
 
Inrusion Detection Systems Referat
Inrusion Detection Systems ReferatInrusion Detection Systems Referat
Inrusion Detection Systems Referatradoatanasov
 
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в ИнтернетЗащита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернетeismail
 
Drupal security lecture
Drupal security lectureDrupal security lecture
Drupal security lecture
slide9991
 
Php sec referat
Php sec referatPhp sec referat
Php sec referatDido_mn
 
11086 browser-security
11086 browser-security11086 browser-security
11086 browser-security
Atanas Sqnkov
 

Similar to 5494 n nikolov_zashtita_ppt (20)

WordPress Security
WordPress SecurityWordPress Security
WordPress Security
 
PHP Security
PHP SecurityPHP Security
PHP Security
 
Bezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojeniaBezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojenia
 
PHP Security
PHP SecurityPHP Security
PHP Security
 
Penetration testing for dummies
Penetration testing for dummiesPenetration testing for dummies
Penetration testing for dummies
 
Сигурност при разработката на WordPress разширения
Сигурност при разработката на WordPress разширенияСигурност при разработката на WordPress разширения
Сигурност при разработката на WordPress разширения
 
Защита при създаването на PHP-приложения
Защита при създаването на PHP-приложенияЗащита при създаването на PHP-приложения
Защита при създаването на PHP-приложения
 
Drupal Security
Drupal SecurityDrupal Security
Drupal Security
 
Защита при създаване на Dot net приложения в интернет
Защита при създаване на Dot net приложения в интернетЗащита при създаване на Dot net приложения в интернет
Защита при създаване на Dot net приложения в интернет
 
Защита при създаване на Java приложения в интернет
Защита при създаване на  Java приложения в интернетЗащита при създаване на  Java приложения в интернет
Защита при създаване на Java приложения в интернет
 
Чести проблеми в сигурността на уеб проектите
Чести проблеми в сигурността на уеб проектитеЧести проблеми в сигурността на уеб проектите
Чести проблеми в сигурността на уеб проектите
 
Php sec
Php secPhp sec
Php sec
 
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в ИнтернетЗащита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернет
 
FABRIQ - Presentation Nakov 0.8
FABRIQ - Presentation Nakov 0.8FABRIQ - Presentation Nakov 0.8
FABRIQ - Presentation Nakov 0.8
 
Inrusion Detection Systems Referat
Inrusion Detection Systems ReferatInrusion Detection Systems Referat
Inrusion Detection Systems Referat
 
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в ИнтернетЗащита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернет
 
Drupal security lecture
Drupal security lectureDrupal security lecture
Drupal security lecture
 
Php sec referat
Php sec referatPhp sec referat
Php sec referat
 
11086 browser-security
11086 browser-security11086 browser-security
11086 browser-security
 
Nadezhda Stavreva
Nadezhda StavrevaNadezhda Stavreva
Nadezhda Stavreva
 

5494 n nikolov_zashtita_ppt

  • 1. Защита на Web приложения Cross Site Scripting, SQL Injection Изготвил: Николай Николов Приложна информатика – ДОВО VII курс, I гр., Ф № 5494
  • 2. Web приложения  Web сайтове  Web приложенията - процес на въвеждане, обработване и запазване на информацията се извършва в Глобалната мрежа  Предимства – лесен достъп, постоянна активност (24/7), високо ниво на сигурност на сървърите, разнообразие от модули за управление на данните, достъпни цени
  • 3. Web приложения  Недостатъци - пряката зависимост на системата за управление от Интернет-връзката, натоварването на сървъра, където се намира приложението или където се записва информацията, възможността за поява на непозволени действия от страна на някои потребители спрямо системата  Атаки - фaлшиви HTTP зaявки, brute-force aтaки, пyбличнo излaгaнe нa кoд, oткpaдвaнe (фикcиpaнe) нa cecия, MySQL Injection и XSS
  • 4. Cross Site Script (XSS) атаки  Атака, която използва уязвимост на приложението и ”вмъква” нежелан код, който се изпълнява в браузъра на крайния потребител.  Видове XSS атаки:  Директни: Атакуващият предоставя връзка или друг вид “маскиран” код към клиента.  Статични: Нежелания код се вмъква в базата данни след което се изчавка уязвимата страница да бъде отворена.  DOM: Това са XSS атаки от т.нар. локално ниво.
  • 5. Защита от XSS атаки  Никога не трябва да се вярваме на потребителите на даден сайт.  Входящите данни трябва да бъдат филтрирани.  Определени знаци се прехвърлят в съответните им HTML entry:  & -> &amp;  < -> &lt;  > -> &gt;  ” -> &quot;  ‘ -> &#x27;  / -> &#x2F;
  • 6. Защита от XSS атаки  Не слагайте лични данни и “коментари” на една страница  HTTPOnly флаг на бисквитките  На IP не може да се разчита
  • 7. XSS Атака-примерен код  Кодът на нашата атака, който може да се постави в което и да е от текстово полета: <div style="text-align: center;"><p style="font-family: Verdana; font-style: normal; font-variant: normal; font-weight: bold; font-size: 36px; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(255, 0, 0);">This page has been Hacked!</p><img src="http://ha.ckers.org/images/stallowned.jpg" border="0"><p style="font-family: Arial; font-style: italic; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(221, 221, 221);">XSS Defacement</p></div>
  • 8. XSS Атака - резултат
  • 9. Защита от SQL Injection  SQLi се използва за злонамерено изпълнение на SQL заявка към базата данни.  SQL инжeктиpaнeтo e нaй-чecтo cpeщaнaтa yязвимocт в PHP пpилoжeниятa.
  • 10. Пример - атака Скpипт зa вxoд в cиcтeмaтa имa cинтaкcиc oт poдa: $sql = "SELECT * FROM users WHERE username = '$user' AND password = '$pass'". Aкo към тaзи зaявкa нapyшитeлят пoдaдe eдиничнa кавичка зa пoтpeбитeлcкo имe и пpoизвoлнa пapoлa, зaявкaтa щe въpнe cлeднaтa гpeшкa: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE username = ' ' ' AND password = 'sometext
  • 11. Защита SQL инжeктиpaнeтo може да бъде избегнато. Вcички пpoмeнливи, кoитo ce вкapвaт в eднa MySQL зaявкa, тpябвa дa бъдaт филтpиpaни c фyнкциятa mysql_real_escape_string(). B гopния пpимep, тoвa ca пpoмeнливитe $user и $pass. Cинтaкcиcът e както cлeдвa: $user = mysql_real_escape_string($user) и тaкa зa $pass.
  • 12. Защитни функции  htmlspecialchars() - преобразува специални знаци в html единици  addslashes() - екранира специалните знаци на даден стринг  trim() - премахва знаци в началото и края на даден стринг  htmlentities() - преобразува всички подходящи знаци в HTML единици и е .. сходна с htmlspecialchars();
  • 13. Допълнителна защита  Може да бъде написан на скрипт, който проверява за грешни пароли - при 3 грешни опита за вход с грешна парола в базата данни, акаунта се заключва за определено време.
  • 14. Причини за уязвимости към SQLi  Без филтриране на входящите данни  Уязвимост в сървъра на базата данни
  • 15. Методи за защита от SQLi  Филтриране на данните  Изключване на докладите за грешки.  Създаване на потребител, с по-малко привилегии.  Максимална стойност