bildirgec.org

htaccess hakkında tüm yazılar

10 İşe Yarar WordPress Güvenlik Ayarı

iamdezzy | 02 July 2010 09:39

Güvenlik her zaman önemli bir konu olmuştur. Hayatınızda evinizin, arabanızın güvenliğini sağlamak için pek çok önlem alırsınız. Çevrimiçi iken de güvenlik önemlidir, özellikle de websitelerinden ve bloglarından yaşam sağlayanlar için. Bu makalede, wordpress tabanlı blogunuzu korumak adına bazı işe yarar ince ayarları bulacaksınız.

Wordpress için Güvenlik Ayarları
Wordpress için Güvenlik Ayarları

1. Gereksiz Bilgilerin Gösterilmesini Engellemek

Problem

Wordpress blogunuza giriş yapmaya çalışırken hata yaptığınızda, içerik yönetim sisteminiz size neyi yanlış yaptığınız hakkında ipuçları verir. Parolanızı unutma ihtimalinize karşı bu iyidir, ancak aynı zamanda blogunuzu hacklemek isteyen kişiler için de iyidir. Öyleyse, neden hatalı giriş denemelerindeki hata mesajlarını gösterelim ki?

Çözüm

Giriş denemeleri hata mesajlarını kaldırmak için tema klasörünüz içindeki functions.php dosyanızı açın ve şu kodu ekleyin:

add_filter('login_errors',create_function('$a', "return null;"));

Dosyayı kaydedin ve kendiniz görün: Hata mesajlarına son.

Kod Açıklaması

Bu kod ile, the login_errors() fonksiyonuna bir kanca ekleyerek tekrar yazdırdık. Yeni fonksiyon ise hata mesajı yerine sadece null yani boş bir satır görünmesini sağlayacak.

Kaynak

Wordpress güvenliği için ipuçları

Wordpress Güvenliği: Hatalı Giriş Mesajlarını Gizlemek

Windows IIS7 Üzerine CodeIgniter Kurulumu

fatigue | 15 May 2009 15:24

Linux/Apache kullanıcıları ile Windows IIS kullanıcıları arasında CodeIgniter kurulumu açısından en büyük fark url yönlendirme konusundur. Linux/Apache kullanıcıları .htaccess dosyası ile kendi uygulamalarını yönlendirirlerken, Windows IIS kullanıcıları için bu konu biraz farklı halledilir.

Windows IIS 7 üzerinde CodeIGniter kullanmak isteyenler öncelikle işe IIS yönetim paneli yardımı ile FastCGI modülü yükleyerek başlanmalıdır. Daha sonra ise URL Rewrite Module – Go Live `ı indirip yüklemeleri gereklidir. Böylece yazacakları web.config dosyası ile .htaccess e benzer gönlendirme yapabilirler.

Resimlerde Güvenlik

yenidem | 24 April 2009 13:18

Özellikle sosyal ağ ve benzeri sitelerde profilimize resim eklerken iki kez düşünürüz, acaba eklediğimiz resim ne kadar güvende veya yetkisiz kişiler bu resme ulaşabilir mi diye. Web konusuna biraz hakim olan kişiler bilir ki bir dosyanın -bu resim dosyası veya herhangi bir dosya olabilir- sunucu üzerindeki yolunu biliyorsak o dosyaya erişmek oldukça basittir. Örneğin günümüzde yaygın olarak kullanılan facebook’a eklediğimiz resimler için her ne kadar gizlilik ayarı yaparsak yapalım resim dosyasına sağ tıklayıp adresini kopyaladığımızda facebook’a üye olmayan kişilerin bile bu resmi açabildiğini görebiliriz.
Güvenlik için resim dosyasının tam adresini sayfaya yansıtmadan bir sorgu ile veritabanından çekmek de mümkün ama bazı durumlarda bu yöntem sorun çıkarabilmekte, örneğin /resim.php?id=5 şeklinde bir resim dosyasına eriştiğimizi varsayıyorum, bu yolu başka bir siteye direk eklemek istediğinizde eklenebilecek uzantıların jpg, gif veya png olabileceği şeklinde bir uyarı ile karşılaşmak mümkün. Ayrıca bu yöntemde kötü niyetli kullanıcıları aldatamazsınız, resmin fiziksel yolunun bu olmadığını bileceklerdir.
Resimleri güvenli bir hale getirmenin bir diğer yolu ise resimleri direk veritabanına gömmek, nitekim bu yöntem oldukça zahmetli ve veritabanının şişmesi açısından pek tercih edilen yöntem değil.
Gelelim kullanımı daha kolay ve güvenli olan yöntemimize; htaccess yardımıyla öncelikle jpg veya png uzantılı dosyaların da birer PHP dosyası gibi işletilmesini sağlayalım, yani sunucumuzun belirlediğimiz dizininden JPG uzantılı bir dosya talep edildiğinde sunucumuz bu dosyayı öncelikle PHP filtresinden geçirsin ve kullanıcıya o şekilde sunsun. Bunun için apache sunucuda htaccess dosyasına ekleyeceğimiz kod;

1
AddType application/x-httpd-php .jpg

Şimdi de istemci tarafından talep edilen php yazılımına gelelim;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$dakika = date("i"); // Saatimizin dakikasını alalım. Burada deneme amaçlı dakikayı baz alıyoruz, Gerçek uygulamalarda kullanıcı kimlik kontrolu yapılabilir.
$sonrakam=substr("$dakika", -1); // Dakikanın son hanesini alalım.
// Dakika eğer tek sayıysa resmi göstermeden betiği durduralım.
if ( $sonrakam == 1 || $sonrakam == 3 || $sonrakam == 5 || $sonrakam == 7 || $sonrakam == 9 ) {
die('şuanda olmaz!');
}
else {
// Dakikamız tek sayı değilse betik çalışmaya devam etsin.
$dosya = "orj/gercekResim.png"; // Gösterilecek resmin gerçek yolunu girelim. Betiği geliştirmek için veritabanı sorgusu yapılabilir.
header("Content-type: image/jpeg");
$resim = imagecreatefrompng("$dosya");
imagejpeg($resim);
imagedestroy($resim);
}
?>

Resim Koruma Teknikleri

Redingot | 24 January 2009 17:38

Web sitelerimizde yer alan resimlerin kopyalanmaması için bahsedeceğim çeşitli teknikler uygulanabilir. Bu resim koruma yöntemleri bir takım önlemler olsalar da yine de kopyalanmamayı garanti edemez. En basitinden ekran kopyala (print-screen) tuşu bile resmi kopyalamaya yetecektir.

Resim koruma önlemleri:

1. Sağ tuş kilitleme (disable right click): Resmin üzerinde sağ tıklayıp “resmi kaydet”i önler.
Bakınız: No right click
Ayrıca: jQuery Plugin for no right click

2. Internet Explorer 6 Image Toolbar‘ı kaldırma (Disable IE6 Image Toolbar): Resmin üzerine gelindiğinde otomatik görünen kaydetme seçeneğini kaldırır.

Disable IE6 Image Toolbar
Disable IE6 Image Toolbar

3. Gerçek resmin üzerine boş resim koymak: Bu yöntemde gerçek resminizi “div” etiketi içinde arka plan resmi olarak kullanıyorsunuz. Transparan boşluk resminizi de aynı boyutlarda gerçek resimmiş gibi kullanıyorsunuz. Orijinal resmi gören kişi resmi kaydetmeye çalıştığında “blank-boşluk” resmi kaydetmiş olacaktır.

Apache mod_rewrite ile üşengeç seo

admin | 13 November 2008 21:05

Merhaba, internet siteleri para kazandırmaya başladığından beri, site sahipleri daha çok para kazanmak için daha çok ziyaretçi kazanmaya çalışıyor. Bunun en kolay yöntemi ise arama motorlarının huyuna gitmek.

Apache web sunucusunun özelliği olan mod_rewrite ile adres satırlarımızı kodlama dilinin değişkenlerinden arındırıp siteadı.com/yazi/Yazi_Basligi şeklinde yayınlayabiliyoruz. Tabi bunu yapmak için popüler olan yol regex değerleri ile enteresan bir htaccess dosyası oluşturmak. Örnek:

1
RewriteRule ^blog/([A-Za-z0-9_)(:!-',-]+)/?$ blog.php?yazi=$1 [L]

Spam yorumlara köklü temizlik ( wordpress )

y4kup | 15 September 2008 12:06

yorum
yorum

Merhabalar

Bende bir blog yazarak olarak sürekli şikayetci olduğum bir konu vardı, siteme sürekli yabacı ziyaretciler girip bir çok link içeren anlamsız yorum bırakıyorlardı. Akisment de dahil bir kaç tane spam önleyici eklenti kullandım fakat yinede ağdan kaçan yorumlar oluyordu.Muhakkak aramızda bu tür sorunlar yaşayanlar vardır. Bu eklenti ile bu sorun ortadan tamemen kalkıyor eklenti siteye gelip spam yorum yapanların ip’ sini alıyor .htaccess e giriyor ve ip banlıyor böylelikle bir daha ziyaretci bırakın spam yorum yapmayı siteye bile giremiyor 🙂 Eklentinin yapımcısı.Eklentiyi indir.

htaccess ile ilgili yazılar

Redingot | 13 August 2008 21:27

Bildirgec’te yazdığım .htaccess üzerine yazılar:

.htaccess dosyası ve özellikleri ile ilgili yazıda etiketlerdeki bazı hataları gidermek için tekrar gönderdiğimde etiketler gitti ve bozulanlar oldu. Bu bozulma sanırım yazının tekrar gönderiminde etiketlerle ilgili kısımda sorun çıkarmasından kaynaklanıyor. Atmış olduğum maillere de cevap gelmemiş olup herhangi bir düzeltme olmamış olduğu için etiketleri bu günlük yazısına ekliyorum.

.htaccess ile otomatik subdomain oluşturma

Redingot | 17 July 2008 14:04

htaccess ile ilgili buradaki yazımdan sonra htaccess kullanarak kendinen alt alan adları oluşturmadan bahsedeceğim.

CPanel ve benzeri kontrol panelleri üzerinden elle (manual olarak) subdomainler oluşturabilmekteyiz. Fakat diyelim ki sitemizde bulunan her kullanıcı için bir subdomain vermek istiyoruz. O zaman kullanıcıları kuyruğa alıp sonra cpanel üzerinden elle alt alanadları oluşturmak bir hayli zahmetli ve anında etkileşimli olmayan bir iş.

Hi5.com ve benzeri sitelerde görüleceği üzere, üye olan her kullanıcı subdomain sahibi olabilmekte.

Şimdi otomatik subdomaini manual oluşturmaktan başka olarak iki şeyden bahsedeceğim.

1. .htaccess ile:
RewriteEngine OnRewriteCond %{HTTP_HOST} ^([^.]+).bildirgec.org$ [NC]RewriteCond %1 !^(www|ftp|mail)$ [NC]RewriteRule ^.*$ http://arsiv.pilli.com/uye.php?kullaniciadi=%1 [R,L]

Görüldüğü gibi www, ftp, mail haricinde tüm kullanıcı adları için subdomain oluşturulabilecektir.Yalnız işlem bu kadar basit olabileceği gibi bu kadar kolay da olmayabilir. DNS ayarları gerekebilir.

DNS ayarları:
DNS Functions > Edit DNS Zone kısmındaDNS: *.bildirgec.org (ya da sadece *)TTL: 14400IN: INRecord Type: A (Kayıt Türü)
şeklinde ayarlanır.

Bu ayar ile subdomain’lerin hostunuzun bulunduğu ip adresine düşmesi sağlanır.Ayrıca Host firmanızın DNS wildcard‘ı aktifleştirmiş olması gerekmektedir.

Bu tüm subdomain’lerin hesabınıza yönlenmesini sağlayacaktır. Bu işlem de ServerAlias direktifleri ile httpd.conf ile yapılır.

httpd.conf ayarı:
<VirtualHost 255.255.255.0>DocumentRoot /home/username/public_htmlServerName www.bildirgec.orgServerAlias bildirgec.orgServerAlias *.bildirgec.org</VirtualHost>

2. PHP’de CPanel ile Etkileşerek:
Siteniz PHP dilini destekliyorsa

<?phpdefine(’CPANELKADI’,'cpanel_kullanici_adini_buraya_giriniz’);define(’CPANELPAROLA’,'cpanel_parolasini_buraya_giriniz’);define(’METIN_DOSYA’,'altalan.txt’); // istersek alt alan adlarını bir txt dende çekebilirsinizdefine(’CPANEL_SABLON’,'rvblue’); // Türkçe cpaneller genelde rvblue dür ancak ingilizce ise genellikle x kullanılır. Tam olarak öğrenmek için cPanelinize giriniz ve urlde frontend/ ifadesinden sonra ne yazdığına bakınız.define(’DOMAIN’,’siteadresi.com’);function getVar($ad, $def = ”) {if (isset($_REQUEST[$ad]) && ($_REQUEST[$ad] != ”))return $_REQUEST[$ad];elsereturn $def;}$cpanelkadi=getVar(’cpanelkadi’, CPANELKADI);$cpanelparola=getVar(’cpanelparola’, CPANELPAROLA);$cpanel_sablon = getVar(’cpanelsablon’, CPANEL_SABLON);if (isset($_REQUEST[”subdomain”])) {$doms = array( getVar(’domain’, DOMAIN) . “;” . $_REQUEST[”subdomain”]);if (getVar(’domain’, DOMAIN) == ”) die(”Geçersiz kullanıcı adı”);}else {$doms = @file(METIN_DOSYA);if (!$doms) {echo ”Metin dosyası bulunamadı. Lütfen bilgileri manuel giriniz.

<form method=’post’>Altalan (Subdomain):<input name=’subdomain’>Domain:<input name=’domain’><br>cPanel Kullanıcı Adı:<input name=’cpanelkadi’><br>cPanel Parola:<input name=’cpanelparola’><br>cPanel Şablon:<input name=’cpanelsablon’><br><br>Türkçe cpaneller genelde rvblue dür ancak ingilizce ise genellikle x kullanılır. Tam olarak öğrenmek için cPanelinize giriniz ve urlde frontend/ ifadesinden sonra ne yazdığına bakınız.<br><br><input type=’submit’ value=’Yarat’ style=’border:1px solid black’></form>”;die();}}function subd($host,$port,$sahibi,$parolaci,$talep) {$sock = fsockopen(’localhost’,2082);if(!$sock) {print(’Socket error’);exit();}$yetkilendir = “$sahibi:$parolaci”;$pass = base64_encode($yetkilendir);$in = “GET $taleprn”;$in .= “HTTP/1.0rn”;$in .= “Host:$hostrn”;$in .= “Authorization: Basic $passrn”;$in .= “rn”;fputs($sock, $in);while (!feof($sock)) {$sonuc .= fgets ($sock,128);}fclose( $sock );return $sonuc;}foreach($doms as $dom) {$satirlar = explode(’;',$dom);if (count($satirlar) == 2) {$domain = trim($satirlar[0]);$subd = trim($satirlar[1]);}else {$domain = getVar(’domain’, DOMAIN);$subd = trim($satirlar[0]);}$talep = “/frontend/$cpanel_sablon/subdomain/doadddomain.html?rootdomain=$domain&domain=$subd”;$sonuc = subd(’localhost’,2082,$cpanelkadi,$cpanelparola,$talep);$goster = strip_tags($sonuc); //teknik bilgi. scriptlerinizde echo yaptırmayın.echo $goster;}?>

kodu ile oluşturabilirsiniz. Bu şekilde subdomain oluşturulabiliyor fakat işlem bir hayli yavaş sürebiliyor.

Ben CPanel için PHP kodlarını denedim, DNS Zone’da *.domain.com ekleyerek subdomain’leri ip’ye düşürmeye başardım fakat httpd.conf’a erişimim olmadığı için ayarlamasını yapamadım. Fakat oluşan subdomainler için htaccess çalışmaktadır. Denemekte, kurcalamakta ve araştırmakta fayda var.

Bu konuyla ilgili olarak Altan Tanrıverdi’nin yazısı okunmalıdır. Yazıda geçen kodlar bu sitede yer almaktadır. DNS ile ve httpd.conf için de buraya bakabilirsiniz.

.htaccess dosyası ve özellikleri

Redingot | 13 July 2008 09:07

htaccess nedir?
htaccess dosyası (hypertext access file), klasör(ler) düzeyinde Apache‘nin ayarlanmasına izin veren, http sunucusu genel ayar dosyasını (httpd.conf) özelleştirebilen dosyadır. Dosya “.htaccess” olarak geçmektedir.

htaccess ne işe yarar?

  • Sitenizin kaynaklarını tüketen, sitenizden veri çeken linkler (hotlinking) engellenebilir,
  • Sitenizi ziyaret eden zararlı botlar engellenebilir,
  • Site üzerinde gizli klasörler oluşturulabilir,
  • Klasörlere erişim engellenebilir,
  • URL‘deki bağlantı adresleri biçimlendirilebilir. Örnek olarak “makale.php” “makale.html” olarak, “makale.php?id=5” “makale-kuresel-isinma-id-5” gibi düzenleme yapılabilir veya bildirgec.org’daki gibi arsiv.pilli.com/etiket/htaccess arsiv.pilli.com/yazi/htaccess-dosyasi gibi görünüm sağlanabilir,
  • Veri sıkıştırma için kullanılabilir,
  • Dosya veya klasörlere şifre eklenebilir,
  • Hata sayfalarını özelleştirilebilir,
  • Klasörleri listelemede kullanılabilir,
  • Yönlendirmelerde kullanılabilir,
  • Hangi dilin kullandığı saklanabilir,
  • Site için otomatik alt alan adları(subdomainler) oluşturulabilir.

htaccess dosyası site için çok önemli bir dosyadır. Bu dosya ile arama motoru optimizasyonu, bant genişliğinin optimum kullanılması, güvenlik önlemleri, erişim ayarları ve daha birçok ayar yapılabilmektedir. Her dosyanın çağrılışında .htaccess dosyası incelenir. Bu nedenle htaccess dosyasını küçük tutmada fayda vardır. .htaccess dosyasının kuralları, üst dizinlerdeki htaccess kurallarını, o dizin için değiştirebilir.

online .htaccessEditor

steasp | 01 February 2008 13:40

URL rewriting, dizin koruma, url yönlendirme veya diğer amaçlar için .htaccesssıksık kullanılır.
.htaccess çok komplex bir yapı gerektirebilir. Online .htaccess Editörü ile .htaccess dosya oluşturabilirsiniz.

.htaccess editör
.htaccess editör

Yaptığınız değişiklikler anında(tabii ki Ajax ile) alt taraftaki kodlarınıza yansıyor.