İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

WordPress 10 Güvenlik İpucu

frtn

0
İyinet Üyesi
Katılım
29 Ağustos 2011
Mesajlar
448
Reaction score
0
Konum
Edirne
WordPress günümüzde çok popüler bir web sitesi yazılımı ve blog’lar, firma web siteleri, online alışveriş siteler ve hatta büyük portallar gibi pek çok site bu CMS (içerik yönetim sistemi) üzerinde kurulu. WordPress’in kullanımı kolay ama bazı güvenlik problemleri de var. Bugün onları nasıl çözeceğimizi anlatacağım.

1. WordPress’i XSS (cross site scripting) saldırılarından korumak


Problem

Yazılım geliştiriciler her zaman GET ve POST isteklerine karşı koruma yapmaya uğraşıyorlar fakat bu her zaman yeterli olmayabiliyor. Web sitemizi XSS saldırılarından ve değişkenler ile GLOBALS _REQUEST’in değiştirilmesinden de korumamız gerekiyor.

Çözüm

Aşağıdaki kod bloğu XSS saldırılarına, değişkenler ve GLOBALS _REQUEST’in değiştirilme denemelerine karşı koruma sağlar. Bu kodu .htaccess dosyası içine (ana klasörde) yapıştırın.
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|<).*script.*(\>|>) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
Bu kod tüm istekleri kontrol eder ve eğer bir script tag’i içeriyorsa veya GLOBALS ve _REQUEST değişkenlerinin değerlerini değiştirmeye kalkarsa blokluyor ve bir 403 hata sayfası gösteriyor.

2. Ek bilgi göstermeyi kaldırın

Problem

Eğer yönetici paneline giriş yaparken yanlış bilgi girersek kibar CMS’miz bunun hakkında bilgi (geçersiz kullanıcı veya şifre) veriyor. Bir bilgisayar korsanının girdiği login bilgilerinin yanlış olduğunu görmesini mi istersiniz yoksa hiçbir bilgi görmemesini mi?

Çözüm

functions.php dosyasını açın (wp-content/themes/kullandığınız-tema-adı) ve aşağıdaki satırı ekleyin:
add_filter(’login_errors’,create_function(’$a’, “return lisanssız;”));

3. SSL kullanımına zorlama

Problem

Eğer web sitesi ile aranızdaki transferleri korumak isterseniz SSL protokolü kullanılabilir. Verinin bütünlüğü ve gizliliği konusunda koruma sağlar. Bunu WordPress’de yapmak çok kolay:

Çözüm

Öncelikle hizmet sağlayıcınızın SSL destekleyip desteklemediğini öğrenin. Eğer destekliyorsa we-config.php dosyasını açın ve aşağıdaki kodu ekleyin:
define(’FORCE_SSL_ADMIN’, true);
Wordpress çok sayıda sabit kullanır ve FORCE_SSL_ADMIN bunlardan sadece bir tanesi. Yönetici paneline giriş yaparken SSL kullanımını mecburi kılar.

4. wp-config dosyasını korumak için .htaccess kullanımı

Problem

wp-config.php MYSQL sunucusuna ve veritabanına erişimde ihtiyaç duyulan tüm bilgileri içerir. Bu sebeple bu dosyayı korumak önemlidir.

Çözüm

.htaccess dosyanıza aşağıdaki kodu ekleyin:
<files wp-config.php>
order allow,deny
deny from all
</files>
Bu dosyaya herkesin erişimini engellemiş oluyoruz.

5. WordPress sürümünü gizlemek

Problem

WordPress otomatik olarak sürüm numarasını kaynak koduna ekler ve sitenize saldırmayı planlayanlar için bu önemli bir bilgidir. Her bir WP sürümünün kendine özgü hataları ve güvenlik açıkları vardır. O yüzden bu bilgiyi gizlemeliyiz.

Çözüm

functions.php dosyasını açın (wp-content/themes/kullandığınız-tema-adı/) ve aşağıdaki kodu ekleyin:
remove_action(’wp_head’, ’wp_generator’);
Ayrıca sitenin ana klasöründen readme.html dosyasını da silmelisiniz çünkü onda da WP sürümü hakkında bilgi olabilir.

6. Spam yapanı veya bot’ları IP bazlı yasaklamak

Problem

Spam yapanlar ve botlar can sıkıcı olabiliyorlar. Çözüm onları IP bazlı olarak yasaklamak. Tabi bu proxy üzerinden gelen spam script’lerine karşı sizi korumaz.

Çözüm

Sürekli spam yapan IP adresini .htaccess dosyasına ekleyerek sitenize erişimini engelleyebilirsiniz. Aşağıdaki kodu .htaccess dosyasına ekleyin ve IP adresini spam yapanın adresi ile değiştirin.
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 123.456.789
</LIMIT>

7. Zararlı URL isteklerine karşı koruma sağlayacak bir plugin yazımı

Problem

Bilgisayar korsanları genelde çeşitli kötü amaçlı istekler ile zayıflık bulmaya çalışırlar. WordPress bunlara karşı iyi koruma sağlıyor fakat biz ekstra koruma ekleyeceğiz.

Çözüm

blockbadqueries.php adında yeni bir dosya yaratıp, içine aşağıdaki kodu yapıştırıp wp-content/plugins klasörüne koyun. Yönetim panelinde diğer eklentileri yaptığınız gibi aktif edebilirsiniz.
<?php
/*
Plugin Name: Block Bad Queries
Plugin URI: vellumweb.com
Description: Protect WordPress Against Malicious URL Requests
Author URI: vellumweb.com/
Author: VellumWeb
Version: 1.0
*/
global $user_ID;
if($user_ID) {
if(!current_user_can(’level_10’)) {
if (strlen($_SERVER[’REQUEST_URI’]) > 255 ||
strpos($_SERVER[’REQUEST_URI’], “eval(“) ||
strpos($_SERVER[’REQUEST_URI’], “CONCAT”) ||
strpos($_SERVER[’REQUEST_URI’], “UNION+SELECT”) ||
strpos($_SERVER[’REQUEST_URI’], “base64″)) {
@header(“HTTP/1.1 414 Request-URI Too Long”);
@header(“Status: 414 Request-URI Too Long”);
@header(“Connection: Close”);
[MENTION=10487]ExiT[/MENTION];
}
}
}
?>

8. Hotlinking

Problem

Sitenizde depolanmış olan resimleri başka sitelerin kullandığını düşünün. Bu bantgenişliğinizin harcanmasına yol açacaktır.

Çözüm

.htaccess dosyasına aşağıdaki kodu ekleyin
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?websitem\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
websitem\.com yerine kendi site adresinizi ve /images/nohotlink.jpg yerine hangi resimin görünmesini istiyorsanız onu koyun (harici url de olabilir, ör. imageshack).

9. Admin hesabını kaldırın

Problem

Eğer kullanıcı adı bilinirse şifre bulma denemeleri yapmak daha kolay olur. Ve WP varsayılan kullanıcı adı da admin.

Çözüm

Aşağıdaki veritabanı sorgusunu çalıştırın (yeni login ismini yazin yerine istediğiniz yeni kullanici adini girin).
UPDATE wp_users SET user_login = ’yeni_login_ismini_yazin’ WHERE user_login = ’Admin’;

10. Sunucudaki klasörleri koruyun

Problem

Çoğu web barındırma sağlayıcısı sunuculardaki klasörlerin içeriğinin görünmesine izin verebiliyor. Örnek olarak eğer www.websiteniz.com/wp-includes adresine gittiğinde içeriğini görebilirsiniz. Tabi ki bu pek de güvenli değil.

Çözüm

Yine .htaccess dosyasını düzenliyoruz:
Options All -Indexes

Kaynak : http://turlubicim.com/wordpress-10-guvenlik-ipucu.html
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst