<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="tr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>G&uuml;venlik İpu&ccedil;ları - Apache HTTP Sunucusu S&uuml;r&uuml;m 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Mod&uuml;ller</a> | <a href="../mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Hata bildir</a></p>
<p class="apache">Apache HTTP Sunucusu S&uuml;r&uuml;m 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="https://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="../">S&uuml;r&uuml;m 2.4</a> &gt; <a href="./">&Ccedil;eşitli Belgeler</a></div><div id="page-content"><div id="preamble"><h1>G&uuml;venlik İpu&ccedil;ları</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/misc/security_tips.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Bu &ccedil;eviri g&uuml;ncel olmayabilir. Son değişiklikler i&ccedil;in İngilizce s&uuml;r&uuml;m ge&ccedil;erlidir.</div>

    <p>Bir HTTP Sunucusunu ayarlarken dikkat edilmesi gerekenler ve bazı
    ipu&ccedil;ları.  &Ouml;neriler kısmen Apache'ye &ouml;zel kısmen de genel olacaktır.</p>
  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif"> <a href="#uptodate">G&uuml;ncel Tutma</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#dos">Hizmet Reddi (DoS) Saldırıları</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#serverroot"><code>ServerRoot</code> Dizinlerinin İzinleri</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#ssi">Sunucu Taraflı İ&ccedil;erik Yerleştirme</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cgi">CGI Genelinde</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#nsaliasedcgi"><code>ScriptAlias</code>'sız CGI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#saliasedcgi"><code>ScriptAlias</code>'lı CGI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#dynamic">Devingen i&ccedil;erikli kaynaklar</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#dynamicsec">Devingen i&ccedil;eriğin g&uuml;venliği</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#systemsettings">Sistem Ayarlarının Korunması</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#protectserverfiles">Sunucu dosyalarının &ouml;ntanımlı olarak korunması</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#watchyourlogs">G&uuml;nl&uuml;klerin İzlenmesi</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#merging">Yapılandırma b&ouml;l&uuml;mlerinin birleştirilmesi</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="uptodate">G&uuml;ncel Tutma <a title="Permanent link" href="#uptodate" class="permalink">&para;</a></h2>

    <p>Apache HTTP Sunucusu iyi bir g&uuml;venlik sicilinin yanında g&uuml;venlik
      konularıyla olduk&ccedil;a ilgili bir geliştirici topluluğuna sahiptir. Fakat,
      bir yazılımın dağıtılmasının ardından k&uuml;&ccedil;&uuml;k ya da b&uuml;y&uuml;k bazı sorunların
      keşfedilmesi ka&ccedil;ınılmazdır. Bu sebeple, yazılım g&uuml;ncellemelerinden
      haberdar olmak olduk&ccedil;a &ouml;nem kazanır. HTTP sunucunuzu doğrudan
      Apache'den temin ediyorsanız yeni s&uuml;r&uuml;mler ve g&uuml;venlik g&uuml;ncellemeleri
      ile ilgili bilgileri tam zamanında alabilmek i&ccedil;in <a href="http://httpd.apache.org/lists.html#http-announce">Apache
      HTTP Sunucusu Duyuru Listesi</a>ne mutlaka &uuml;ye olmanızı &ouml;neririz.
      Apache yazılımının &uuml;&ccedil;&uuml;nc&uuml; parti dağıtımlarını yapanların da buna benzer
      hizmetleri vardır.</p>

    <p>Ş&uuml;phesiz, bir HTTP sunucusu, sunucu kodunda bir sorun olmasa da
      tehlike altındadır. Eklenti kodları, CGI betikleri hatta işletim
      sisteminden kaynaklanan sorunlar nedeniyle bu ortaya &ccedil;ıkabilir. Bu
      bakımdan, sisteminizdeki t&uuml;m yazılımların sorunları ve g&uuml;ncellemeleri
      hakkında bilgi sahibi olmalısınız.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="dos">Hizmet Reddi (DoS) Saldırıları <a title="Permanent link" href="#dos" class="permalink">&para;</a></h2>
    

    <p>T&uuml;m ağ sunucuları, istemcilerin sistem kaynaklarından yararlanmalarını
      engellemeye &ccedil;alışan hizmet reddi saldırılarına (HRS) maruz kalabilir.
      Bu t&uuml;r saldırıları tamamen engellemek m&uuml;mk&uuml;n değildir, fakat
      yarattıkları sorunları azaltmak i&ccedil;in bazı şeyler yapabilirsiniz.</p>

    <p>&Ccedil;oğunlukla en etkili anti-HRS aracı bir g&uuml;venlik duvarı veya başka bir
      işletim sistemi yapılandırmasıdır. &Ouml;rneğin, &ccedil;oğu g&uuml;venlik duvarı
      herhangi bir IP adresinden aynı anda yapılan bağlantıların sayısına bir
      sınırlama getirmek &uuml;zere yapılandırılabilir. B&ouml;ylece basit saldırılar
      engellenebilir. Ancak bunun dağıtık hizmet reddi saldırılarına (DHRS)
      karşı bir etkisi olmaz.</p>

    <p>Bunların yanında Apache HTTP Sunucusunun da sorunları azaltıcı
      tedbirler alınmasını sağlayacak bazı yapılandırmaları vardır:</p>

    <ul>
      <li><code class="directive"><a href="../mod/mod_reqtimeout.html#requestreadtimeout">RequestReadTimeout</a></code>
        y&ouml;nergesi bir istemcinin isteği g&ouml;ndermek i&ccedil;in harcadığı zamanı
        sınırlamayı sağlar.</li>

      <li>HRS'ye maruz kalması olası sitelerde <code class="directive"><a href="../mod/core.html#timeout">TimeOut</a></code> y&ouml;nergesinin değeri d&uuml;ş&uuml;r&uuml;lmelidir. Birka&ccedil;
        saniye gibi m&uuml;mk&uuml;n olduğunca d&uuml;ş&uuml;k bir ayar uygun olabilir. Ancak
        <code class="directive"><a href="../mod/core.html#timeout">TimeOut</a></code> başka işlemlerde de
        kullanıldığından &ccedil;ok d&uuml;ş&uuml;k değerler, &ouml;rneğin, uzun s&uuml;re &ccedil;alışan CGI
        betiklerinde sorunlar &ccedil;ıkmasına sebep olabilir.</li>

      <li>HRS'ye maruz kalması olası sitelerde <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> y&ouml;nergesinin değeri de d&uuml;ş&uuml;r&uuml;lebilir.
        Hatta bazı siteler başarımı arttırmak amacıyla <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code> y&ouml;nergesi &uuml;zerinden kalıcı
        bağlantıları tamamen kapatabilirler.</li>

      <li>Zaman aşımıyla ilgili y&ouml;nergeler bakımından diğer mod&uuml;ller de
        araştırılmalıdır.</li>

      <li><code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>,
      <code class="directive"><a href="../mod/core.html#limitrequestfields">LimitRequestFields</a></code>,
      <code class="directive"><a href="../mod/core.html#limitrequestfieldsize">LimitRequestFieldSize</a></code>,
      <code class="directive"><a href="../mod/core.html#limitrequestline">LimitRequestLine</a></code> ve
      <code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code> y&ouml;nergeleri,
        istemci girdileri ile tetiklenen &ouml;zkaynak t&uuml;ketimini sınırlamak i&ccedil;in
        yapılandırılırken dikkatli olunmalıdır.</li>

      <li>İşletim sisteminiz desteklediği takdirde, işletim sisteminin isteği
        işleyen kısmını y&uuml;ks&uuml;z bırakmak i&ccedil;in <code class="directive"><a href="../mod/core.html#acceptfilter">AcceptFilter</a></code> y&ouml;nergesinin etkin olmasını sağlamalısınız.
        Bu, Apache HTTP Sunucusunda zaten &ouml;ntanımlı olarak etkindir.
        Yapacağınız şey işletim sistemi &ccedil;ekirdeğini buna g&ouml;re yapılandırmak
        olacaktır.</li>

      <li>Sunucu tarafından &ouml;zkaynakları t&uuml;ketmeden aynı anda işlenebilecek
        bağlantıların sayısını sınırlamak i&ccedil;in <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> y&ouml;nergesini kullanın. Ayrıca, <a href="perf-tuning.html">başarım arttırma belgesine</a> de
        bakabilirsiniz.</li>

      <li>HRS'lerin etkilerini azaltmak i&ccedil;in aynı andaki bağlantı sayısını
        arttırabilecek evreli <a href="../mpm.html">MPM</a>'lerden birini
        kullanmak iyi olabilir. Dahası, <code class="module"><a href="../mod/event.html">event</a></code> MPM'i
        her bağlantıya yeni bir evre atanmaması i&ccedil;in eşzamansız işlem yapar.
        OpenSSL k&uuml;t&uuml;phanesinin doğası nedeniyle
        <code class="module"><a href="../mod/event.html">event</a></code> MPM'i <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> ve diğer girdi
        s&uuml;zge&ccedil;leri ile hen&uuml;z uyumlu değildir. Bu durumlarda,
        <code class="module"><a href="../mod/worker.html">worker</a></code> MPM'inin davranışına geri d&ouml;ner.</li>

      <li>Belli istemci davranışlarını sınırlayacak ve HRS ile
        ilgili sorunları azaltmaya yardımcı olacak &uuml;&ccedil;&uuml;nc&uuml; parti mod&uuml;ller
        bulunabilir.</li>
    </ul>
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="serverroot"><code>ServerRoot</code> Dizinlerinin İzinleri <a title="Permanent link" href="#serverroot" class="permalink">&para;</a></h2>
    

    <p>Normalde, Apache root kullanıcı tarafından başlatılır ve hizmetleri
      sunarken <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> y&ouml;nergesi
      tarafından tanımlanan kullanıcının aidiyetinde &ccedil;alışır. Root tarafından
      &ccedil;alıştırılan komutlarda olduğu gibi, root olmayan kullanıcıların
      yapacakları değişikliklerden korunmak konusunda da dikkatli
      olmalısınız. Dosyaların sadece root tarafından yazılabilir olmasını
      sağlamak yeterli değildir, bu dizinler ve &uuml;st dizinler i&ccedil;in de
      yapılmalıdır. &Ouml;rneğin, sunucu k&ouml;k dizininin
      <code>/usr/local/apache</code> olmasına karar verdiyseniz, bu dizini
      root olarak ş&ouml;yle oluşturmanız &ouml;nerilir:</p>

    <div class="example"><p><code>
      mkdir /usr/local/apache <br>
      cd /usr/local/apache <br>
      mkdir bin conf logs <br>
      chown 0 . bin conf logs <br>
      chgrp 0 . bin conf logs <br>
      chmod 755 . bin conf logs
    </code></p></div>

    <p><code>/</code>, <code>/usr</code>, <code>/usr/local</code>
      dizinlerinde sadece root tarafından değişiklik yapılabileceği kabul
      edilir. <code class="program"><a href="../programs/httpd.html">httpd</a></code> &ccedil;alıştırılabilirini kurarken de benzer
      bir &ouml;nlemin alındığından emin olmalısınız:</p>

    <div class="example"><p><code>
      cp httpd /usr/local/apache/bin <br>
      chown 0 /usr/local/apache/bin/httpd <br>
      chgrp 0 /usr/local/apache/bin/httpd <br>
      chmod 511 /usr/local/apache/bin/httpd
    </code></p></div>

    <p>Diğer kullanıcıların değişiklik yapabileceği bir dizin olarak bir
      <code>htdocs</code> dizini oluşturabilirsiniz. Bu dizine root
      tarafından &ccedil;alıştırılabilecek dosyalar konulmamalı ve burada root
      tarafından hi&ccedil;bir dosya oluşturulmamalıdır.</p>

    <p>Diğer kullanıcılara root tarafından yazılabilen ve &ccedil;alıştırılabilen
      dosyalarda değişiklik yapma hakkını tanırsanız, onlara root
      kullanıcısını ele ge&ccedil;irilebilme hakkını da tanımış olursunuz. &Ouml;rneğin,
      biri <code class="program"><a href="../programs/httpd.html">httpd</a></code> &ccedil;alıştırılabilirini zararlı bir programla
      değiştirebilir ve o programı tekrar &ccedil;alıştırdığınız sırada program
      yapacağını yapmış olur. G&uuml;nl&uuml;kleri kaydettiğiniz dizin herkes
      tarafından yazılabilen bir dizin olduğu takdirde, birileri bir g&uuml;nl&uuml;k
      dosyasını bir sistem dosyasına sembolik bağ haline getirerek root
      kullanıcısının bu dosyaya ilgisiz şeyler yazmasına sebep olabilir.
      G&uuml;nl&uuml;klerin dosyaları herkes tarafından yazılabilir olduğu takdirde ise
      birileri dosyaya yanıltıcı veriler girebilir.</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="ssi">Sunucu Taraflı İ&ccedil;erik Yerleştirme <a title="Permanent link" href="#ssi" class="permalink">&para;</a></h2>
    

    <p>SSI sayfaları bir sunucu y&ouml;neticisi a&ccedil;ısından &ccedil;eşitli olası risklere
      kaynaklık edebilir.</p>

    <p>İlk risk, sunucu y&uuml;k&uuml;ndeki artış olasılığıdır. T&uuml;m SSI sayfaları,  SSI
      kodu i&ccedil;ersin i&ccedil;ermesin Apache tarafından &ccedil;&ouml;z&uuml;mlenir. Bu k&uuml;&ccedil;&uuml;k bir artış
      gibi g&ouml;r&uuml;n&uuml;rse de bir paylaşımlı sunucu ortamında &ouml;nemli bir y&uuml;k haline
      gelebilir.</p>

    <p>SSI sayfaları, CGI betikleriyle ilgili riskleri de taşır. <code>exec
      cmd</code> elemanı kullanılarak bir SSI sayfasından herhangi bir CGI
      betiğini veya bir sistem programını Apache'nin aidiyetinde olduğu
      kullanıcının yetkisiyle &ccedil;alıştırmak m&uuml;mk&uuml;nd&uuml;r.</p>

    <p>SSI sayfalarının yararlı &ouml;zelliklerinden yararlanırken g&uuml;venliğini de
      arttırmanın bazı yolları vardır.</p>

    <p>Sunucu y&ouml;neticisi, bir başıbozuk SSI sayfasının sebep olabileceği
      zararları bertaraf etmek i&ccedil;in <a href="#cgi">CGI Genelinde</a>
      b&ouml;l&uuml;m&uuml;nde a&ccedil;ıklandığı gibi <a href="../suexec.html">suexec</a>'i etkin
      kılabilir.</p>

    <p>SSI sayfalarını <code>.html</code> veya <code>.htm</code>
      uzantılarıyla etkinleştirmek tehlikeli olabilir. Bu &ouml;zellikle
      paylaşımlı ve y&uuml;ksek trafikli bir sunucu ortamında &ouml;nemlidir. SSI
      sayfalarını normal sayfalardan farklı olarak <code>.shtml</code> gibi
      bildik bir uzantıyla etkinleştirmek gerekir. Bu, sunucu y&uuml;k&uuml;n&uuml; asgari
      d&uuml;zeyde tutmaya ve risk y&ouml;netimini kolaylaştırmaya yarar.</p>

    <p>Diğer bir &ccedil;&ouml;z&uuml;m de SSI sayfalarından betik ve program &ccedil;alıştırmayı
      iptal etmektir. Bu, <code class="directive"><a href="../mod/core.html#options">Options</a></code>
      y&ouml;nergesine değer olarak <code>Includes</code> yerine
      <code>IncludesNOEXEC</code> vererek sağlanır. Ancak, eğer betiklerin
      bulunduğu dizinde <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
      y&ouml;nergesiyle CGI betiklerinin &ccedil;alışması m&uuml;mk&uuml;n kılınmışsa,
      kullanıcıların <code>&lt;--#include virtual="..." --&gt;</code> ile bu
      betikleri  &ccedil;alıştırabileceklerine dikkat ediniz.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="cgi">CGI Genelinde <a title="Permanent link" href="#cgi" class="permalink">&para;</a></h2>
    

    <p>Herşeyden &ouml;nce ya CGI betiğini/programını yazanlara ya da kendinizin
      CGI'deki g&uuml;venlik a&ccedil;ıklarını (ister kasıtlı olsun ister tesad&uuml;fi)
      yakalama becerinize g&uuml;venmek zorundasınız. CGI betikleri esasen
      sisteminizdeki komutları site kullanıcılarının izinleriyle
      &ccedil;alıştırırlar. Bu bakımdan dikkatle denenmedikleri takdirde olduk&ccedil;a
      tehlikeli olabilirler.</p>

    <p>CGI betiklerinin hepsi aynı kullanıcının aidiyetinde &ccedil;alışırsa diğer
      betiklerle aralarında &ccedil;elişkilerin ortaya &ccedil;ıkması ister istemez
      ka&ccedil;ınılmazdır. &Ouml;rneğin A kullanıcısının B kullanıcısına garezi varsa
      bir betik yazıp B'nin CGI veritabanını silebilir. Bu gibi durumların
      ortaya &ccedil;ıkmaması i&ccedil;in betiklerin farklı kullanıcıların aidiyetlerinde
      &ccedil;alışmasını sağlayan ve 1.2 s&uuml;r&uuml;m&uuml;nden beri Apache ile dağıtılan <a href="../suexec.html">suEXEC</a> diye bir program vardır. Başka bir yol
      da <a href="http://cgiwrap.sourceforge.net/">CGIWrap</a> kullanmaktır.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="nsaliasedcgi"><code>ScriptAlias</code>'sız CGI <a title="Permanent link" href="#nsaliasedcgi" class="permalink">&para;</a></h2>
    

    <p>Kullanıcıların sitenin her yerinde CGI betiklerini &ccedil;alıştırmalarına
      izin vermek ancak şu koşullarda m&uuml;mk&uuml;n olabilir:</p>

    <ul>
      <li>Kullanıcılarınızın kasıtlı ya da kasıtsız sistemi saldırıya a&ccedil;ık
        hale getirecek betikler yazmayacaklarına tam g&uuml;veniniz vardır.</li>
      <li>Sitenizin g&uuml;venliği zaten o kadar k&ouml;t&uuml;d&uuml;r ki, bir delik daha
        a&ccedil;ılmasının mahzuru yoktur.</li>
      <li>Sitenizin sizden başka kullanıcısı yoktur ve sunucunuzu sizden
        başka hi&ccedil; kimsenin ziyaret etmesi m&uuml;mk&uuml;n değildir.</li>
    </ul>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="saliasedcgi"><code>ScriptAlias</code>'lı CGI <a title="Permanent link" href="#saliasedcgi" class="permalink">&para;</a></h2>
    

    <p>CGI'yi belli dizinlerle sınırlamak y&ouml;neticiye bu dizinlerde daha iyi
      denetim imkanı sağlar. Bu ka&ccedil;ınılmaz olarak <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>'sız CGI'den &ccedil;ok daha
      g&uuml;venlidir, ancak bu dizinlere yazma hakkı olan kullanıcılarınız
      g&uuml;venilir kişiler olması ve site y&ouml;neticisinin de olası g&uuml;venlik
      a&ccedil;ıklarına karşı CGI betiklerini ve programlarını denemeye istekli
      olması şartıyla.</p>

    <p>&Ccedil;oğu site y&ouml;neticisi <code>ScriptAlias</code>'sız CGI yerine bu
      yaklaşımı se&ccedil;er.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="dynamic">Devingen i&ccedil;erikli kaynaklar <a title="Permanent link" href="#dynamic" class="permalink">&para;</a></h2>
    

    <p>Sunucunun bir par&ccedil;ası gibi &ccedil;alışan, <code>mod_php</code>,
      <code>mod_perl</code>, <code>mod_tcl</code> ve <code>mod_python</code>
      gibi g&ouml;m&uuml;l&uuml; betik &ccedil;alıştırma se&ccedil;enekleri sunucuyu &ccedil;alıştıran
      kullanıcının aidiyetinde &ccedil;alışırlar (<code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> y&ouml;nergesine bakınız). Bu bakımdan bu betik
      yorumlayıcılar tarafından &ccedil;alıştırılan betikler, sunucu kullanıcısının
      eriştiği herşeye erişebilirler. Bazı betik yorumlayıcıların getirdiği
      bazı sınırlamalar varsa da bunlara pek g&uuml;venmemek, gerekli sınamaları
      yine de yapmak gerekir.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="dynamicsec">Devingen i&ccedil;eriğin g&uuml;venliği <a title="Permanent link" href="#dynamicsec" class="permalink">&para;</a></h2>
    

    <p><code>mod_php</code>, <code>mod_perl</code> veya
      <code>mod_python</code> gibi devingen i&ccedil;eriği yapılandırırken
      g&uuml;venlikle ilgili değerlendirmelerin &ccedil;oğu <code>httpd</code>'nin
      kapsamından &ccedil;ıkar ve bu mod&uuml;llerin belgelerini incelemek ihtiyacı
      duyarsınız. &Ouml;rneğin, PHP &ccedil;oğu zaman kapalı tutulan
      <a href="http://www.php.net/manual/en/ini.sect.safe-mode.php">G&uuml;venli
      Kip</a> ayarını etkin kılmanızı &ouml;nerir. Daha fazla g&uuml;venlik i&ccedil;in bir
      diğer &ouml;rnek bir PHP eklentisi olan
      <a href="http://www.hardened-php.net/suhosin/">Suhosin</a>'dir. Bunlar
      hakkında daha ayrıntılı bilgi i&ccedil;in her projenin kendi belgelerine
      başvurun.</p>

    <p>Apache seviyesinde, <a href="http://modsecurity.org/">mod_security</a>
      adı verilen mod&uuml;l&uuml; bir HTTP g&uuml;venlik duvarı gibi ele alabilir, devingen
      i&ccedil;eriğin g&uuml;venliğini arttırmanıza yardımcı olmak &uuml;zere inceden inceye
      yapılandırabilirsiniz.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="systemsettings">Sistem Ayarlarının Korunması <a title="Permanent link" href="#systemsettings" class="permalink">&para;</a></h2>
    

    <p>G&uuml;venliği ger&ccedil;ekten sıkı tutmak istiyorsanız, kullanıcılarınızın
      yapılandırmanızdaki g&uuml;venlik ayarlarını ge&ccedil;ersiz kılmak i&ccedil;in
      <code>.htaccess</code> dosyalarını kullanabilmelerinin de &ouml;n&uuml;ne
      ge&ccedil;melisiniz. Bunu yapmanın tek bir yolu vardır.</p>

    <p>Sunucu yapılandırma dosyanıza şunu yerleştirin:</p>

    <pre class="prettyprint lang-config">&lt;Directory "/"&gt;
    AllowOverride None
&lt;/Directory&gt;</pre>


    <p>B&ouml;ylece, belli dizinlerde &ouml;zellikle etkinleştirilmedik&ccedil;e b&uuml;t&uuml;n
      dizinlerde <code>.htaccess</code> dosyalarının kullanımını engellemiş
      olursunuz.</p>

    <p>Bu ayar Apache 2.3.9 itibariyle &ouml;ntanımlıdır.</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="protectserverfiles">Sunucu dosyalarının &ouml;ntanımlı olarak korunması <a title="Permanent link" href="#protectserverfiles" class="permalink">&para;</a></h2>
    

    <p>Apache'nin ister istemez yanlış anlaşılan y&ouml;nlerinden biri &ouml;ntanımlı
      erişim &ouml;zelliğidir. Yani siz aksine bir şeyler yapmadık&ccedil;a, sunucu normal
      URL eşleme kurallarını kullanarak bir dosyayı bulabildiği s&uuml;rece onu
      istemciye sunacaktır.</p>

    <p>&Ouml;rneğin, aşağıdaki durumu ele alalım:</p>

    <div class="example"><p><code>
      # cd /; ln -s / public_html
    </code></p></div>

    <p>Ve, tarayıcınıza <code>http://localhost/~root/</code> yazın.</p>

    <p>B&ouml;ylece, istemcilerin t&uuml;m dosya sisteminizi gezmelerine izin vermiş
      olursunuz. Bu işlemin sonu&ccedil;larının &ouml;n&uuml;n&uuml; almak i&ccedil;in sunucu yapılandırma
      dosyanıza şunları yazın:</p>

    <pre class="prettyprint lang-config">&lt;Directory "/"&gt;
    Require all denied
&lt;/Directory&gt;</pre>


    <p>Bu suretle, dosya sisteminize &ouml;ntanımlı erişimi yasaklamış olursunuz.
      Erişime izin vermek istediğiniz dizinler i&ccedil;in uygun <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> b&ouml;l&uuml;mleri eklemeniz yeterli
      olacaktır. &Ouml;rnek:</p>

    <pre class="prettyprint lang-config">&lt;Directory "/usr/users/*/public_html"&gt;
    Require all granted
&lt;/Directory&gt;
&lt;Directory "/usr/local/httpd"&gt;
    Require all granted
&lt;/Directory&gt;</pre>


    <p><code class="directive"><a href="../mod/core.html#location">Location</a></code> ve <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> y&ouml;nergelerinin etkileşimine de
      &ouml;zellikle &ouml;nem vermelisiniz; &ouml;rneğin <code>&lt;Directory "/"&gt;</code>
      erişimi yasaklarken bir <code>&lt;Location "/"&gt;</code> y&ouml;nergesi bunu
      ortadan kaldırabilir.</p>

    <p><code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> y&ouml;nergesi de size
      buna benzer bir oyun oynayabilir; y&ouml;nergeye <code>./</code> atamasını
      yaparsanız, root kullanıcısı s&ouml;z konusu olduğunda yukarıda ilk &ouml;rnekteki
      durumla karşılaşırız. Sunucu yapılandırma dosyanızda aşağıdaki satırın
      mutlaka bulunmasını &ouml;neririz:</p>

    <pre class="prettyprint lang-config">UserDir disabled root</pre>


  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="watchyourlogs">G&uuml;nl&uuml;klerin İzlenmesi <a title="Permanent link" href="#watchyourlogs" class="permalink">&para;</a></h2>
    

    <p>Sunucunuzda olup biteni g&uuml;n&uuml; g&uuml;n&uuml;ne bilmek istiyorsanız <a href="../logs.html">g&uuml;nl&uuml;k dosyalarına</a> bakmalısınız. G&uuml;nl&uuml;k dosyaları
      sadece olup biteni raporlamakla kalmaz, sunucunuza ne t&uuml;r saldırılar
      yapıldığını ve g&uuml;venlik seviyenizin yeterli olup olmadığını anlamanızı da
      sağlarlar.</p>

    <p>Bazı &ouml;rnekler:</p>

    <div class="example"><p><code>
      grep -c "/jsp/source.jsp?/jsp/ /jsp/source.jsp??" access_log <br>
      grep "client denied" error_log | tail -n 10
    </code></p></div>

    <p>İlk &ouml;rnek, <a href="http://online.securityfocus.com/bid/4876/info/">Apache Tomcat Source.JSP Bozuk İstek Bilgilerini İfşa A&ccedil;ığı</a>nı
      istismar etmeyi deneyen saldırıların sayısını verirken ikinci &ouml;rnek,
      reddedilen son on istemciyi listeler; &ouml;rnek:</p>

    <div class="example"><p><code>
      [Thu Jul 11 17:18:39 2002] [error] [client foo.example.com] client denied
      by server configuration: /usr/local/apache/htdocs/.htpasswd
    </code></p></div>

    <p>G&ouml;rd&uuml;ğ&uuml;n&uuml;z gibi g&uuml;nl&uuml;k dosyaları sadece ne olup bittiğini raporlar, bu
      bakımdan eğer istemci <code>.htpasswd</code> dosyasına erişebiliyorsa <a href="../logs.html#accesslog">erişim g&uuml;nl&uuml;ğ&uuml;n&uuml;zde</a> şuna benzer bir
      kayıt g&ouml;r&uuml;rs&uuml;n&uuml;z:</p>

    <div class="example"><p><code>
      foo.example.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1"
    </code></p></div>

    <p>Bu, sunucu yapılandırma dosyanızda aşağıdaki yapılandırmayı iptal
      ettiğiniz anlamına gelir:</p>

    <pre class="prettyprint lang-config">&lt;Files ".ht*"&gt;
    Require all denied
&lt;/Files&gt;</pre>


  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="merging">Yapılandırma b&ouml;l&uuml;mlerinin birleştirilmesi <a title="Permanent link" href="#merging" class="permalink">&para;</a></h2>

    

    <p>Yapılandırma b&ouml;l&uuml;mlerinin birleştirilmesi karmaşık bir işlem olup bazı
      durumlarda y&ouml;nergelere bağlıdır. Y&ouml;nergeleri bir araya getirirken
      aralarındaki bağımlılıkları daima sınayın.</p>

    <p><code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> gibi hen&uuml;z y&ouml;nerge katıştırma
      mantığını ger&ccedil;eklememiş mod&uuml;ller i&ccedil;in sonraki b&ouml;l&uuml;mlerdeki davranış, bu
      mod&uuml;llerin y&ouml;nergelerini i&ccedil;erip i&ccedil;ermemesine bağlıdır. Yapılandırmada
      y&ouml;nergelerin <em>yerleri değiştirildiğinde</em> fakat bir katıştırma
      yapılmadığında, yapılandırma bir değişiklik yapılana kadar miras
      alınır.</p>
  </div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/misc/security_tips.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
<p class="menu"><a href="../mod/">Mod&uuml;ller</a> | <a href="../mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Hata bildir</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>