Сигурност на PHPуеб приложения

Содержание

Слайд 2

1. Cross Site Scripting (XSS)
2. SQL Injection
3. Malicious File Execution

Топ 10 уязвимости

1. Cross Site Scripting (XSS) 2. SQL Injection 3. Malicious File Execution
при уеб приложенията

Open Web Application Security Project
http://www.owasp.org

Слайд 3

4. Insecure Direct Object Reference
5. Cross Site Request Forgery (CSRF)
6. Information Leakage

4. Insecure Direct Object Reference 5. Cross Site Request Forgery (CSRF) 6.
and Improper Error Handling
7. Broken Authentication and Session Management
8. Insecure Cryptographic Storage
9. Insecure Communications
10. Failure to Restrict URL Access

Топ уязвимости при уеб приложенията

Слайд 4

Какво може да доведе до XSS атака? Уеб приложение използва данни предоставени от

Какво може да доведе до XSS атака? Уеб приложение използва данни предоставени
потребителя, без да ги валидира или филтрира.
До какво може да доведе една XSS атака? Изпълнение на нежелани скриптове в браузъра на потребителя - жертва на атаката.
Кои видове уеб приложения са засегнати? Всички, които визуализират динамично съдържание предоставено от потребителя.

Cross Site Scripting (XSS)

Слайд 5

Non-persistent (Reflected) Когато данни, предоставени от уеб клиент (най-често под формата на параметри

Non-persistent (Reflected) Когато данни, предоставени от уеб клиент (най-често под формата на
в HTTP заявка), се визуализират директно в браузъра на потребителя.
Persistent (Stored) Когато данни, предоставени от потребителя, се съхраняват на сървъра и се използват за генериране на динамични страници без да се филтрират.
DOM Based Изпълняват се изцяло от страна на клиента. Когато JavaScript код използва директно данни от DOM обекти, като document.location.

Видове XSS атаки

Слайд 6

Име: Коментар:

Име: Коментар: echo " $name написа: "; echo " $comment "; echp " "; ?> Пример
type="submit" value="Добави коментара" />
echo "

$name написа:

"; echo "
$comment
"; echp "
"; ?>

Пример

Слайд 7

Валидиране на входните данни
Всички входни данни трябва да се проверяват за

Валидиране на входните данни Всички входни данни трябва да се проверяват за
коректност – тип, формат и т.н.

Филтриране на изходните данни
Всички изходни данни трябва да се филтрират за специални символи преди да се визуализират.

Как да се предпазим?

Слайд 8

Какво може да доведе до SQL инжекция? Изпълнение на SQL заявки, които се

Какво може да доведе до SQL инжекция? Изпълнение на SQL заявки, които
конструират динамично с входни данни без валидация.
До какво може да доведе една SQL инжекция? Неправомерен достъп и модификация на данни. Неправомерна автентикация и оторизация и др.
Кои видове уеб приложения са засегнати? Всички, които изпълняват динамично генерирани заявки.

SQL Injection

Слайд 9

Форма за вход в сайт, чрез която потребителят въвежда потребителско име и

Форма за вход в сайт, чрез която потребителят въвежда потребителско име и парола: Потребител: Парола: Пример
парола:
Потребител: Парола:

Пример

Слайд 10

Заявка, която търси потребител с въведените име и парола:

Заявка, която търси потребител с въведените име и парола: Пример
$password = md5($_POST['password']); $sql = "SELECT COUNT(id) FROM users WHERE “; $sql.= "username='$username'"; $sql.= "AND password='$password'"; ?>

Пример

Слайд 11

Валидиране на входните данни
Всички входни данни трябва да се проверяват за

Валидиране на входните данни Всички входни данни трябва да се проверяват за
коректност – тип, формат и т.н.

Филтриране нa данните, участващи в заявки
Всички данни, които участват при конструирането за заявки, трябва да се филтрират, като се премахнат специалните за SQL символи.
mysql_real_escape_string($_POST['username']);

Как да се предпазим?

Слайд 12

Какво може да доведе до атаката? Най-често възможност за качване на файлове от

Какво може да доведе до атаката? Най-често възможност за качване на файлове
потребителя – снимки, документи и т.н.
До какво може да доведе подобна атака? Неправомерното изпълнение на файлове дава на атакуващия почти неограничени възможности за злоупотреба.
Кои видове уеб приложения са засегнати? Всички, които приемат файлове качвани от потребителя.

Malicious File Execution

Слайд 13

Форма, чрез която потребителят може да качи изображение в jpg формат:

Форма, чрез която потребителят може да качи изображение в jpg формат: Изберете изображение: Пример
enctype="multipart/form-data"> Изберете изображение:

Пример

Слайд 14

Скрипт, който проверява и записва изображението:

Скрипт, който проверява и записва изображението: else { move_uploaded_file($picture['tmp_name'],$filename); } ?> Пример
. basename($picture['name']); if($picture['type'] != "image/jpg") { echo "Невалиден формат! Моля, опитайте отново."; exit; }
else { move_uploaded_file($picture['tmp_name'],$filename); } ?>

Пример

Слайд 15

Съхраняване извън публичната директория
Когато файловете се съхраняват извън публичната директория, те

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

Как да се предпазим?

Слайд 16

PHP Security Scanner http://sourceforge.net/projects/securityscanner/
Spike PHP Security Audit http://sourceforge.net/projects/phpsecaudit/
PIXY http://pixybox.seclab.tuwien.ac.at/pixy/

Софтуер за автоматично

PHP Security Scanner http://sourceforge.net/projects/securityscanner/ Spike PHP Security Audit http://sourceforge.net/projects/phpsecaudit/ PIXY http://pixybox.seclab.tuwien.ac.at/pixy/ Софтуер
тестване сигурността на PHP приложения

Софтуерът за автоматично тестване не може да гарантира сигурността на едно PHP приложение, той е само допълнително средство.

Слайд 17

Secure file upload in PHP web applications http://www.scanit.be/uploads/php-file-upload.pdf
OWASP Top 10 – 2010:

Secure file upload in PHP web applications http://www.scanit.be/uploads/php-file-upload.pdf OWASP Top 10 –
The ten most critical web application security risks http://owasptop10.googlecode.com/files/OWASP Top 10 - 2010.pdf
SQL Injection Attacks by Example http://unixwiz.net/techtips/sql-injection.html
PHP and the OWASP Top Ten Security Vulnerabilites http://www.sklar.com/page/article/owasp-top-ten

Полезни връзки

Имя файла: Сигурност-на-PHPуеб-приложения.pptx
Количество просмотров: 96
Количество скачиваний: 0