8. ● Собствения ни хардуер – компютри, рутери
● Интернет връзката
● Сървърите, които ползваме
● Пароли за достъп, ключове
● Плъгини и теми
● Нашият код
● Meatware
Компоненти
9. ● Собствения ни хардуер – компютри, рутери
● Интернет връзката
● Сървърите, които ползваме
● Пароли за достъп, ключове
● Плъгини и теми
● Нашият код
● Meatware
Компоненти
15. ● 30%+ от сайтовете съхраняват
паролите в явен вид*
http://plaintextoffenders.com/about/
● Phishing, Social Engineering, Brute
Force, MITM, keyloggers, human
errors, бази данни с пароли
Пароли...
18. ● Използвайте силни алгоритми за
хеширане на пароли (phpass е ок
засега)
● Много внимавайте като логвате или
дебъгвате $_POST, в който може да
се съдържат пароли.
Превенция
37. XSS
Неправилна валидация на ID-та
2. Липса на ^ и $ в regexp
if ( ! preg_match( '/[a-z0-9_-]/i', $myfield ) ) {
return 'You are trying to hack me!';
}
// $myfield = '<script ...'
38. XSS
Неправилна валидация на адреси
2. Липса на ^ и $ в RegExp
if ( preg_match ( '!https?://(www.)*good-
host.com/js/!i', $myjs)
http://dzver.com/bad.js?http://good-host.com/js/
if ( preg_match( '!^http://good-host.com!',
$myjs )
http://good-host.com.dzver.com/
39. XSS
Неправилна валидация на адреси
3. Точката в RegExp е wildcard.
if ( preg_match ( '!^https?://(www.)*good-host.com/js/!i',
$myjs) ...
// $myjs = http://wwwwgoodhost.com/js
40. XSS
Неправилна валидация на адреси
4. Позволен / в хост-а
if ( ! preg_match( '!^https?://[^.]+.whatever.com/.+$!i',
$url ) )
// $myjs = 'http://3254656436/or.whatever.com/evil.js'
// $myjs = '<script.../.whatever.com/'
43. CSRF
Позволяване на чужд сайт да имитира
дейност от името на потребителя ни
чрез последователни request-и
Solution:
nonces
44. CSRF
Позволяване на чужд сайт да имитира
дейност от името на потребителя ни
чрез последователни request-и
Solution:
nonces
http://codex.wordpress.org/Function_Reference/wp_create_nonce
55. $wpdb->prepare
Всяка заявка, която не използва
prepare е потенциален таргет.
$wpdb->query( $wpdb-
>prepare( "DELETE FROM wp_users
WHERE user_id = %d", $id ) );
57. Разни
● current_user_can – всеки път,
когато се налага
● switch_to_blog – в Multisite с
повишено внимание.
58. Възможни защити
● Ограничаване на папки за писане до
uploads
● Инсталиране на WordPress със SVN
● Диагонален преглед на изтеглените
теми и плъгини за curly code:
eval(base64_decode("09B2459...