Безопасный код © Александр Швец neochief@drupal.pro

Содержание

Слайд 2

SQL инъекция $result = db_query(' SELECT * FROM users WHERE id

SQL инъекция

$result = db_query('
SELECT *
FROM users
WHERE id = '" + $userID

+ "';
‘);
Слайд 3

$userID = "5;DROP TABLE users";

$userID = "5;DROP TABLE users";

Слайд 4

$result = db_query(' SELECT * FROM users WHERE id = 5;DROP TABLE users; ');

$result = db_query('
SELECT *
FROM users
WHERE id = 5;DROP TABLE users;
');

Слайд 5

Неправильно $result = db_query(' SELECT * FROM users WHERE id =

Неправильно

$result = db_query('
SELECT *
FROM users
WHERE id = '" + $userID +

"';
‘);
Слайд 6

Правильно $result = db_query(' SELECT * FROM users WHERE id = %d ‘, $userID);

Правильно

$result = db_query('
SELECT *
FROM users
WHERE id = %d
‘, $userID);

Слайд 7

Cross-site scripting (XSS) Основная проблема — кража пользовательских cookies, с помощью

Cross-site scripting (XSS)
Основная проблема — кража пользовательских cookies, с помощью которых

производится неавторизированный вход на сайт.
Слайд 8

Как крадутся cookie document.write( ‘ ’/>’ );

Как крадутся cookie


Слайд 9

Уязвимость в реальной жизни $output = ‘ ’. $title .’ ’;

Уязвимость в реальной жизни
$output =
’. $title .’’;

Слайд 10

$title = “ alert(document.cookie) ”;

$title = “
”;

alert(document.cookie)




Слайд 12

$url = “javascript:alert(document.cookie)”;

$url = “javascript:alert(document.cookie)”;

Слайд 13

…

Слайд 14

Неправильно $output = ‘ ’. $title .’ ’;

Неправильно
$output =
’. $title .’’;

Слайд 15

Правильно $output = ‘ ’. check_plain($title) .’ ’;

Правильно
$output =
’. check_plain($title) .’’;

Слайд 16

Еще лучше $output = l($title, $url);

Еще лучше
$output = l($title, $url);

Слайд 17

Фильтрация ввода — лечение от XSS check_plain() check_markup() ckeck_url() t() filter_xss_admin()

Фильтрация ввода — лечение от XSS

check_plain()
check_markup()
ckeck_url()
t()
filter_xss_admin()

Слайд 18

Подделка межсайтовых запросов (CSRF) Быстро удалить документ

Подделка межсайтовых запросов (CSRF)

Быстро удалить документ

Слайд 19

А что если?

А что если?

Слайд 20

Лечение CSRF Управляющий код должен выполняться только в обработчиках форм, либо с проверкой токенов.

Лечение CSRF

Управляющий код должен выполняться только в обработчиках форм, либо с

проверкой токенов.