mirror of
https://github.com/apache/httpd.git
synced 2025-07-29 09:01:18 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1726104 13f79535-47bb-0310-9956-ffa450edef68
539 lines
25 KiB
XML
539 lines
25 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
||
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
|
||
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
|
||
<!-- English Revision: 1300910:1725855 (outdated) -->
|
||
<!-- =====================================================
|
||
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
|
||
Reviewed by: Orhan Berent <berent belgeler.org>
|
||
========================================================== -->
|
||
|
||
<!--
|
||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||
contributor license agreements. See the NOTICE file distributed with
|
||
this work for additional information regarding copyright ownership.
|
||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||
(the "License"); you may not use this file except in compliance with
|
||
the License. You may obtain a copy of the License at
|
||
|
||
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
||
Unless required by applicable law or agreed to in writing, software
|
||
distributed under the License is distributed on an "AS IS" BASIS,
|
||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
See the License for the specific language governing permissions and
|
||
limitations under the License.
|
||
-->
|
||
|
||
<manualpage metafile="env.xml.meta">
|
||
|
||
<title>Apache’de Ortam Değişkenleri</title>
|
||
|
||
<summary>
|
||
<p>Apache HTTP Sunucusunu etkileyen ortam değişkenleri iki çeşittir.</p>
|
||
|
||
<p>İlki, işletim sisteminin denetimindeki ortam değişkenleridir. Bu
|
||
değişkenlere değer atama işlemi sunucu başlatılmadan önce yapılır.
|
||
Bunlar yapılandırma dosyalarının içinde kullanılabilir. Ayrıca,
|
||
istenirse PassEnv yönergesi kullanılarak bunlar CGI betiklerine ve
|
||
SSI sayfalarına da aktarılabilir.</p>
|
||
|
||
<p>İkincisi ise, Apache HTTP Sunucusunun kendi ortam değişkenleridir.
|
||
Bu değişkenlerde saklanan bilgi erişim denetimi, günlük kaydı gibi
|
||
çeşitli işlemleri denetlemekte kullanılabilir. Değişkenler ayrıca, CGI
|
||
betikleri gibi harici uygulamalarla iletişim mekanizması olarak da
|
||
kullanılabilir. Bu belgede bu değişkenler üzerindeki işlemlere ve
|
||
kullanım şekillerine değinilmiştir.</p>
|
||
|
||
<p>Bu değişkenlere <em>ortam değişkenleri</em> dense de işletim sisteminin
|
||
ortam değişkenleri gibi değillerdir. Bunlar sadece Apache ortamında
|
||
geçerli değişkenler olup işletim sisteminin bu değişkenlerden haberi
|
||
olmaz. Sadece CGI betikleri ve SSI sayfaları gibi harici uygulamalar
|
||
tarafından üretilen ortam değişkenleri sistem ortamının değişkenleri
|
||
haline gelirler. İşletim sistemi ortamına çalışmakta olan sunucudan
|
||
müdahale etmek isterseniz işletim sisteminizin kabuğu tarafından sağlanan
|
||
standart ortam müdahale mekanizmalarını kullanmalısınız.</p>
|
||
</summary>
|
||
|
||
<section id="setting">
|
||
<title>Ortam Değişkenlerinin Atanması</title>
|
||
<related>
|
||
<modulelist>
|
||
<module>mod_cache</module>
|
||
<module>mod_env</module>
|
||
<module>mod_rewrite</module>
|
||
<module>mod_setenvif</module>
|
||
<module>mod_unique_id</module>
|
||
</modulelist>
|
||
<directivelist>
|
||
<directive module="mod_setenvif">BrowserMatch</directive>
|
||
<directive module="mod_setenvif">BrowserMatchNoCase</directive>
|
||
<directive module="mod_env">PassEnv</directive>
|
||
<directive module="mod_rewrite">RewriteRule</directive>
|
||
<directive module="mod_env">SetEnv</directive>
|
||
<directive module="mod_setenvif">SetEnvIf</directive>
|
||
<directive module="mod_setenvif">SetEnvIfNoCase</directive>
|
||
<directive module="mod_env">UnsetEnv</directive>
|
||
</directivelist>
|
||
</related>
|
||
|
||
<section id="basic-manipulation">
|
||
<title>Temel Ortamda Değişiklik</title>
|
||
|
||
<p>Apache ortamında bir ortam değişkenine müdahale etmenin en temel
|
||
yolu hiçbir koşula tabi olmayan <directive module="mod_env"
|
||
>SetEnv</directive> yönergesini kullanmaktır. Bu değişkenleri Apache
|
||
başlatılırken sistem ortam değişkenleri haline getirmek için
|
||
<directive module="mod_env">PassEnv</directive> yönergesi
|
||
kullanılabilir.</p>
|
||
|
||
</section>
|
||
<section id="conditional">
|
||
<title>İsteğe Bağlı Şartlı Atamalar</title>
|
||
|
||
<p>Esnekliği arttırmak için, <module>mod_setenvif</module> modülü ile
|
||
isteğin özelliklerine uygun olarak her isteğe özel değişkenler
|
||
atayabilmek mümkün kılınmıştır. Örneğin, bir değişken sadece isteği
|
||
yapan tarayıcıya özgü bir değerle veya sadece belli bir başlık
|
||
alanınına bağlı olarak atanabilir. Daha da esnek bir mekanizma,
|
||
ortam değişkeni atamak için <code>[E=...]</code> seçeneğinin
|
||
kullanıldığı <module>mod_rewrite</module> modülünün <directive
|
||
module="mod_rewrite" >RewriteRule</directive> yönergesi ile
|
||
sağlanmıştır.</p>
|
||
|
||
</section>
|
||
<section id="unique-identifiers">
|
||
<title>Eşsiz Betimleyiciler</title>
|
||
|
||
<p>Son olarak, <module>mod_unique_id</module> <code>UNIQUE_ID</code>
|
||
ortam değişkenine her istek için o isteğin çok özel koşullar altında
|
||
tüm diğer istekler arasında eşsizliğini garanti edecek bir değer
|
||
atar.</p>
|
||
|
||
</section>
|
||
<section id="standard-cgi">
|
||
<title>Standart CGI Değişkenleri</title>
|
||
|
||
<p>Apache yapılandırmasıyla atanan ve kabuğa aktarılan ortam
|
||
değişkenlerinden başka <a href="http://www.ietf.org/rfc/rfc3875">CGI
|
||
Belirtimi</a>nin gerektirdiği istekler hakkında temel bilgileri
|
||
içeren ortam değişkenlerinin CGI betikleri ve SSI sayfalarınca
|
||
atanabilmesi sağlanmıştır.</p>
|
||
|
||
</section>
|
||
<section id="caveats">
|
||
<title>Bazı Yetersizlikler</title>
|
||
|
||
<ul>
|
||
<li>Standart CGI değişkenlerini ortam değişkenlerine müdahale
|
||
yönergelerini kullanarak değiştirmek veya geçersiz kılmak mümkün
|
||
değildir.</li>
|
||
|
||
<li>CGI betiklerini çalıştırmak için <program>suexec</program>
|
||
kullanıldığında ortam, CGI betikleri çalıştırılmadan önce
|
||
<em>güvenilir</em> değişkenler kalacak şekilde temizlenir.
|
||
<em>Güvenilir</em> değişken listesi <code>suexec.c</code> içinde
|
||
derleme sırasında tanımlanır.</li>
|
||
|
||
<li>Taşınabilirlik adına, ortam değişkenlerinin isimleri sadece
|
||
harfler, rakamlar ve alt çizgi imlerini içerebilir. Bunlara ek
|
||
olarak ismin ilk karakteri bir rakam olmamalıdır. Değişkenler CGI
|
||
betiklerine ve SSI sayfalarına aktarılırken bu sınırlamalara uygun
|
||
olmayan karakterlerin yerlerine alt çizgi imleri konur.</li>
|
||
|
||
<li>Bir özel durum, CGI betiklerine ve benzerlerine ortam
|
||
değişkenleri üzerinden aktarılan HTTP başlıklarıdır (aşağıya
|
||
bakın). Bunlar büyük harfe dönüştürülür ve sadece tireler
|
||
altçizgilere dönüştürülür. Eğer HTTP başlığı geçersiz karakter
|
||
içeriyorsa başlığın tamamı yoksayılır. Böyle bir durumda ne
|
||
yapılacağı öğrenmek için <a href="#fixheader">aşağıya</a>
|
||
bakın.</li>
|
||
|
||
<li>İsteklerin işleme konması sırasında <directive
|
||
module="mod_env">SetEnv</directive> yönergesi geç çalıştırılır,
|
||
yani <directive module="mod_setenvif">SetEnvIf</directive> ve
|
||
<directive module="mod_rewrite">RewriteCond</directive> gibi
|
||
yönergeler <directive module="mod_env">SetEnv</directive> ile
|
||
atanan değişken değerlerini görmezler.</li>
|
||
</ul>
|
||
</section>
|
||
</section>
|
||
<section id="using">
|
||
<title>Ortam Değişkenlerinin Kullanımı</title>
|
||
|
||
<related>
|
||
<modulelist>
|
||
<module>mod_authz_host</module>
|
||
<module>mod_cgi</module>
|
||
<module>mod_ext_filter</module>
|
||
<module>mod_headers</module>
|
||
<module>mod_include</module>
|
||
<module>mod_log_config</module>
|
||
<module>mod_rewrite</module>
|
||
</modulelist>
|
||
<directivelist>
|
||
<directive module="mod_access_compat">Allow</directive>
|
||
<directive module="mod_log_config">CustomLog</directive>
|
||
<directive module="mod_access_compat">Deny</directive>
|
||
<directive module="mod_ext_filter">ExtFilterDefine</directive>
|
||
<directive module="mod_headers">Header</directive>
|
||
<directive module="mod_log_config">LogFormat</directive>
|
||
<directive module="mod_rewrite">RewriteCond</directive>
|
||
<directive module="mod_rewrite">RewriteRule</directive>
|
||
</directivelist>
|
||
</related>
|
||
|
||
<section id="cgi-scripts">
|
||
<title>CGI Betikleri</title>
|
||
|
||
<p>Ortam değişkenlerinin başlıca amaçlarından biri CGI betikleriyle
|
||
iletişim kurmaktır. Yukarıda bahsedildiği gibi CGI betiklerine
|
||
aktarılan ortam Apache yapılandırmasında atanan değişkenlere ek
|
||
olarak istek hakkında standart temel bilgileri de içerir. Bu konuda
|
||
ayrıntılı bilgi edinmek için <a href="howto/cgi.html">CGI
|
||
Öğreticisi</a>ne bakabilirsiniz.</p>
|
||
|
||
</section>
|
||
<section id="ssi-pages">
|
||
<title>SSI Sayfaları</title>
|
||
|
||
<p>Sunucu tarafında <module>mod_include</module> modülünün
|
||
<code>INCLUDES</code> süzgeci ile yorumlanan SSI sayfalarında ortam
|
||
değişkenleri <code>echo</code> elemanı ile basılabilir ve sayfayı
|
||
isteğin özelliklerine uygun olarak oluşturmak için ortam
|
||
değişkenleri akış denetim elemanları içinde kullanılabilir. Apache
|
||
ayrıca, yukarıda bahsedildiği gibi standart CGI ortam değişkenli SSI
|
||
sayfalarını da sağlayabilmektedir. Daha ayrıntılı bilgi edinmek için
|
||
<a href="howto/ssi.html" >SSI Öğreticisi</a>ne bakabilirsiniz.</p>
|
||
|
||
</section>
|
||
<section id="access-control">
|
||
<title>Erişim Denetimi</title>
|
||
|
||
<p><code>allow from env=</code> ve <code>deny from env=</code>
|
||
yönergeleri sayesinde ortam değişkenlerine dayalı olarak sunucuya
|
||
erişim denetim altında tutulabilir. Bunlar <directive
|
||
module="mod_setenvif">SetEnvIf</directive> yönergesi ile birlikte
|
||
kullanılmak suretiyle sunucuya erişim isteğin özelliklerine bağlı
|
||
olarak daha esnek bir tarzda denetlenebilir. Örneğin, belli bir
|
||
tarayıcının sunucuya erişimi bu yönergelerle engellenebilir.</p>
|
||
|
||
</section>
|
||
<section id="logging">
|
||
<title>Şartlı Günlük Kaydı</title>
|
||
|
||
<p>Ortam değişkenleri <directive module="mod_log_config"
|
||
>LogFormat</directive> yönergesinin <code>%e</code> seçeneği
|
||
kullanılarak erişim günlüğüne kaydedilebilir. Bundan başka,
|
||
<directive module="mod_log_config">CustomLog</directive> yönergesi
|
||
sayesinde isteklerin günlüğe kaydedilip kaydedilmeyeceğine ortam
|
||
değişkenlerine dayalı olarak karar verilmesi sağlanabilir. Bunlar
|
||
<directive module="mod_setenvif">SetEnvIf</directive> yönergesi ile
|
||
birlikte kullanılmak suretiyle günlük kayıtları isteğin
|
||
özelliklerine bağlı olarak daha esnek bir tarzda denetlenebilir.
|
||
Örneğin, <code>gif</code> uzantılı dosyalar için yapılan isteklerin
|
||
günlüğe kaydedilmemesi veya sadece alt ağınızın dışından gelen
|
||
isteklerin günlüğe kaydedilmesini isteyebilirsiniz.</p>
|
||
|
||
</section>
|
||
<section id="response-headers">
|
||
<title>Şartlı Yanıt Başlıkları</title>
|
||
|
||
<p><directive module="mod_headers">Header</directive> yönergesi belli
|
||
bir yanıt başlığının istemciye gönderilip gönderilmeyeceğine belli
|
||
bir ortam değişkeninin varlığına bakarak karar vermek için
|
||
kullanılabilir. Böylece örneğin, belli bir başlığın istemciye
|
||
gönderilmesine istemciden belli bir başlığın alınıp alınmadığına
|
||
bağlı olarak karar verilebilir.</p>
|
||
|
||
</section>
|
||
|
||
<section id="external-filter">
|
||
<title>Harici Süzgeçlerin Etkinleştirilmesi</title>
|
||
|
||
<p><module>mod_ext_filter</module> tarafından yapılandırılan harici
|
||
süzgeçler <directive module="mod_ext_filter"
|
||
>ExtFilterDefine</directive> yönergesinin <code>disableenv=</code> ve
|
||
<code>enableenv=</code> seçenekleri kullanılarak bir ortam
|
||
değişkenine bağlı olarak etkinleştirilebilir.</p>
|
||
</section>
|
||
|
||
<section id="url-rewriting">
|
||
<title>URL Kurgulaması</title>
|
||
|
||
<p><directive module="mod_rewrite">RewriteCond</directive>
|
||
yönergesinin <em>SınamaDizgesi</em> olarak kullanılan
|
||
<code>%{ENV:<em>değişken</em>}</code> biçemi
|
||
<module>mod_rewrite</module> yeniden yazma motorunun ortam
|
||
değişkenlerine bağlı kararlar almasını mümkün kılar. Yalnız şuna
|
||
dikkat ediniz: <module>mod_rewrite</module>’ta <code>ENV:</code>
|
||
öneki kullanılmadan belirtilen değişkenler ortam değişkenleri
|
||
değillerdir. Onlar <module>mod_rewrite</module>’a özgü diğer
|
||
modüllerden erişilemeyen özel değişkenlerdir.</p>
|
||
</section>
|
||
</section>
|
||
|
||
<section id="special">
|
||
<title>Özel Amaçlı Ortam Değişkenleri</title>
|
||
|
||
<p>Birlikte çalışabilirlik sorunları Apache’nin belli istemcilerle
|
||
veri alışverişi sırasında davranışını değiştirmesini gerektirebilir.
|
||
Genellikle <directive module="mod_env" >SetEnv</directive> ve
|
||
<directive module="mod_env" >PassEnv</directive> yönergelerinden
|
||
başka <directive module="mod_setenvif" >BrowserMatch</directive>
|
||
gibi yönergelerle ortam değişkenleri atanarak bunu sağlayan
|
||
mekanizmaların olabildiğince esnek davranabilmesi sağlanabilir.</p>
|
||
|
||
<section id="downgrade">
|
||
<title><code>downgrade-1.0</code></title>
|
||
|
||
<p>İstek, daha yüksek bir HTTP protokolüyle yapılmış olsa bile
|
||
HTTP/1.0 isteği olarak ele alınır.</p>
|
||
|
||
</section>
|
||
<section id="force-gzip">
|
||
<title><code>force-gzip</code></title>
|
||
<p><code>DEFLATE</code> süzgeci etkinse tarayıcının tercih ettiği
|
||
kodlama koşulsuz olarak yoksayılarak sıkıştırılmış çıktı
|
||
gönderilir.</p>
|
||
</section>
|
||
<section id="force-no-vary">
|
||
<title><code>force-no-vary</code></title>
|
||
|
||
<p>İstemciye gönderilmeden önce yanıttan <code>Vary</code> alanının
|
||
çıkarılmasına sebep olur. Bazı istemciler bu alanı gerektiği gibi
|
||
yorumlayamazlar, bu değişken atanarak bu sorunla karşılaşılmamaya
|
||
çalışılır. Bu değişkenin atanması ayrıca
|
||
<strong>force-response-1.0</strong> değişkeninin de atanmasına sebep
|
||
olur.</p>
|
||
|
||
</section>
|
||
<section id="force-response">
|
||
<title><code>force-response-1.0</code></title>
|
||
|
||
<p>HTTP/1.0 isteği yapan istemcilere HTTP/1.0 yanıtı verilmesini zorunlu
|
||
kılar. AOL vekillerindeki bir sorun nedeniyle gerçeklenmiştir. Bazı
|
||
HTTP/1.0 istemciler HTTP/1.1 yanıtlarında doğru davranmayabilirler; bu
|
||
değişken atanarak bunların sorunları giderilebilir.</p>
|
||
|
||
</section>
|
||
|
||
<section id="gzip-only-text-html">
|
||
<title><code>gzip-only-text/html</code></title>
|
||
|
||
<p>Bu değişkene "1" değeri atandığında <code>text/html</code>’den
|
||
farklı içerik türleri için <module>mod_deflate</module> modülü
|
||
tarafından sağlanan <code>DEFLATE</code> çıktı süzgeci iptal
|
||
edilir. Sıkıştırılmış olarak saklanan dosyalar kullanıyorsanız bu
|
||
değişkeni <module>mod_negotiation</module> modülü de dikkate alır
|
||
(kimliğine bakarak sadece gzip için değil, tüm kodlamalar için bunu
|
||
yapar).</p>
|
||
</section>
|
||
|
||
<section id="no-gzip"><title><code>no-gzip</code></title>
|
||
|
||
<p>Bu değişken atandığında, <module>mod_deflate</module> modülünün
|
||
<code>DEFLATE</code> süzgeci kapatılır ve
|
||
<module>mod_negotiation</module> modülü kodlanmış kaynak teslimatını
|
||
reddeder.</p>
|
||
|
||
</section>
|
||
|
||
<section id="no-cache"><title>no-cache</title>
|
||
<p><em>2.2.12 sürümünden beri kullanılabilmektedir.</em></p>
|
||
|
||
<p>Atandığı takdirde, <module>mod_cache</module> artık
|
||
önbelleklenebilecek yanıtları kaydetmeyecektir. Bu ortam değişkeni bir
|
||
yanıtın halihazırda mevcut bir isteğe sunulmak üzere önbellekte olup
|
||
olmadığından etkilenmez.</p>
|
||
|
||
</section>
|
||
|
||
<section id="nokeepalive">
|
||
<title><code>nokeepalive</code></title>
|
||
|
||
<p>Bu değişken atandığında, <directive module="core"
|
||
>KeepAlive</directive> yönergesi iptal edilir.</p>
|
||
|
||
</section>
|
||
|
||
<section id="prefer-language">
|
||
<title><code>prefer-language</code></title>
|
||
|
||
<p>Değer olarak <code>en</code>, <code>ja</code> veya
|
||
<code>x-klingon</code> gibi bir dil kısaltması verilerek atanmışsa
|
||
<module>mod_negotiation</module> modülünün normal davranışını
|
||
değiştirerek belirtilen dilde bir teslimat yapılmaya çalışılır.
|
||
Böyle bir belge yoksa normal <a
|
||
href="content-negotiation.html">uzlaşım</a> süreci uygulanır.</p>
|
||
|
||
</section>
|
||
|
||
<section id="redirect-carefully">
|
||
<title><code>redirect-carefully</code></title>
|
||
|
||
<p>İstemciye bir yönlendirme gönderirken sunucuyu daha dikkatli olmaya
|
||
zorlar. Bu genellikle istemcinin yönlendirmeler konusunda sorunlu
|
||
olduğu bilindiği takdirde yararlı olur. Bu değişkenin gerçeklenme
|
||
sebebi, dizin kaynaklarına yönlendirmeler için DAV yöntemlerini
|
||
kullanan Microsoft'un WebFolders yazılımındaki bir sorundur.</p>
|
||
|
||
</section>
|
||
|
||
<section id="suppress-error-charset">
|
||
<title><code>suppress-error-charset</code></title>
|
||
|
||
<p><em>2.0.54 sürümünden beri mevcuttur.</em></p>
|
||
|
||
<p>Apache bir isteğe bir yönlendirme ile yanıt verdiğinde istemci
|
||
yönlendirmeyi kendiliğinden yapmaz veya yapamazsa kullanıcıya yanıtla
|
||
birlikte gönderilen metin gösterilir. Apache normal olarak bu metni
|
||
ISO-8859-1 ile kodlar.</p>
|
||
|
||
<p>Ancak, yönlendirmenin yapıldığı sayfa farklı bir karakter kümesine
|
||
sahipse bazı tarayıcı sürümleri asıl sayfanın karakter kodlaması yerine
|
||
yönlendirmenin kodlamasını kullanmaya çalışırlar. Bu özellikle Yunanca
|
||
gibi dillerde hedef sayfanın hatalı yorumlanmasına yol açar.</p>
|
||
|
||
<p>Bu ortam değişkeninin atanması Apache’nin yönlendirme için karakter
|
||
kümesi belirtmemesini sağlamak suretiyle hatalı tarayıcıların hedef
|
||
sayfayı yanlış karakter kodlamasıyla yorumlamasını önler.</p>
|
||
|
||
<note type="warning">
|
||
<title>Güvenlik Uyarısı</title>
|
||
|
||
<p>Hata sayfalarının bir karakter kümesi belirtilmeksizin yollanması,
|
||
HTTP/1.1 belirtimine uymayan ve karakter kümesini içeriğe bakarak
|
||
tahmin etmeye çalışan tarayıcılarda (MSIE) karşı siteden betik
|
||
saldırısı yorumuna sebep olabilir. Girdi verisindeki UTF-7 içerik
|
||
(istek betimleyici gibi) karşı siteden betik saldırılarını engellemek
|
||
için tasarlanmış normal önceleme mekanizmalarıyla öncelenmeyeceği için
|
||
böyle tarayıcılar UTF-7 karakter kodlaması kullanılarak kolayca
|
||
aldatılabilir.</p>
|
||
</note>
|
||
|
||
</section>
|
||
|
||
<section id="proxy"><title><code>force-proxy-request-1.0</code>,
|
||
<code>proxy-nokeepalive</code>, <code>proxy-sendchunked</code> ve
|
||
<code>proxy-sendcl</code>, <code>proxy-chain-auth</code>,
|
||
<code>proxy-interim-response</code>, <code>proxy-initial-not-pooled</code>
|
||
</title>
|
||
|
||
<p>Bu yönergeler <module>mod_proxy</module> modülünün normal protokol
|
||
davranışını değiştirirler. Daha ayrıntılı bilgi için
|
||
<module>mod_proxy</module> ve <module>mod_proxy_http</module>
|
||
belgelerine bakınız.</p>
|
||
</section>
|
||
|
||
</section>
|
||
|
||
<section id="examples">
|
||
<title>Örnekler</title>
|
||
|
||
<section id="fixheader">
|
||
<title>Bozuk başlıkların CGI betiklerine aktarılması</title>
|
||
|
||
<p>2.4 sürümünden itibaren, <module>mod_cgi</module> modülü ve diğer
|
||
modüllerde HTTP başlıklarının ortam değişkenlerine dönüştürülmesi
|
||
bağlamında Apache daha seçici davranmaktadır. Önce HTTP başlığındaki
|
||
geçersiz karakterlerin tamamı altçizgilere dönüştürülür. Bu, başlık
|
||
zerki yoluyla yapılan karşı-site-betiklerini-çalıştırma saldırısını
|
||
önlemeye yöneliktir. (Bakınız: <a
|
||
href="http://events.ccc.de/congress/2007/Fahrplan/events/2212.en.html"
|
||
>Unusual Web Bugs</a>, slide 19/20).</p>
|
||
|
||
<p>Bozuk başlıklar gönderdiği halde bunlara dokunulmamasını gerektiren
|
||
bir istemciniz varsa, <module>mod_setenvif</module> ve
|
||
<module>mod_header</module> modüllerinin sunduğu yapıyı örnekteki gibi
|
||
kullanarak bu sorunun üstesinden gelebilirsiniz:</p>
|
||
|
||
<example>
|
||
# <br />
|
||
# Aşağıdaki satırlarla bir istemcinin gönderdiği bozuk<br />
|
||
# Accept_Encoding başlıklarının istenildiği gibi işlenmesi<br />
|
||
# sağlanabilir.<br />
|
||
#<br />
|
||
SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1<br />
|
||
RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
|
||
</example>
|
||
|
||
</section>
|
||
|
||
<section id="misbehaving">
|
||
<title>Protokolü yanlış yorumlayan tarayıcıların davranışlarının
|
||
değiştirilmesi</title>
|
||
|
||
<p>Önceki sürümlerde bilinen istemci davranışlarına karşı önlem olarak
|
||
aşağıdaki satırların <code>httpd.conf</code> içinde bulunması
|
||
önerilirdi. Fakat, böyle tarayıcılar artık ortalıkta görünmediğinden
|
||
bu yapılandırmaya da artık gerek kalmamıştır.</p>
|
||
|
||
<example>
|
||
#<br />
|
||
# Aşağıdaki yönergeler normal HTTP yanıt davranışını değiştirirler.<br />
|
||
# İlk yönerge Netscape 2.x ve kendini öyle gösteren tarayıcılar için<br />
|
||
# kalıcı bağlantıyı (keepalive) iptal eder. İkinci yönerge ise HTTP/1.1<br />
|
||
# protokolü bozuk olan ve 301/302 durum kodlu yönlendirme yanıtları<br />
|
||
# kullanıldığında kalıcı bağlantıları gerektiği gibi desteklemeyen<br />
|
||
# Microsoft Internet Explorer 4.0b2 içindir.<br />
|
||
#<br />
|
||
BrowserMatch "Mozilla/2" nokeepalive<br />
|
||
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0<br />
|
||
<br />
|
||
#<br />
|
||
# Aşağıdaki yönergeler HTTP/1.0 yanıtlarından başkasına yabancı olan<br />
|
||
# tarayıcılara HTTP/1.1 yanıtlarının gönderilmesini iptal eder.<br />
|
||
#<br />
|
||
BrowserMatch "RealPlayer 4\.0" force-response-1.0<br />
|
||
BrowserMatch "Java/1\.0" force-response-1.0<br />
|
||
BrowserMatch "JDK/1\.0" force-response-1.0
|
||
</example>
|
||
|
||
</section>
|
||
<section id="no-img-log">
|
||
<title>Resim isteklerinin erişim günlüğüne kaydedilmemesi</title>
|
||
|
||
<p>Bu örnek resim isteklerinin erişim günlüğüne yazılmasını engeller.
|
||
Bu örnek değiştirilerek belli dizinlerin veya belli konaklardan
|
||
gelen isteklerin günlüğe kaydedilmesini engellemek amacıyla da
|
||
kullanılabilir.</p>
|
||
|
||
<example>
|
||
SetEnvIf Request_URI \.gif image-request<br />
|
||
SetEnvIf Request_URI \.jpg image-request<br />
|
||
SetEnvIf Request_URI \.png image-request<br />
|
||
CustomLog logs/access_log common env=!image-request
|
||
</example>
|
||
|
||
</section>
|
||
<section id="image-theft">
|
||
<title>“Resim Hırsızlığı” için önlem alınması</title>
|
||
|
||
<p>Bu örnekte sunucunuzda bulunmayan sayfalarda sunucunuzdaki
|
||
resimlerin kullanılmasının nasıl önleneceği gösterilmiştir. Bu
|
||
yapılandırma önerilmemekle birlikte nadir durumlarda işe yarar. Tüm
|
||
resimlerin <code>/siteler/resimler</code> dizini altında tutulduğu
|
||
varsayılmıştır.</p>
|
||
|
||
<example>
|
||
SetEnvIf Referer "^http://www\.example\.com/" local_referal<br />
|
||
# Referrer bilgisi göndermeyen tarayıcılara izin verelim<br />
|
||
SetEnvIf Referer "^$" local_referal<br />
|
||
<Directory /siteler/resimler><br />
|
||
<indent>
|
||
Order Deny,Allow<br />
|
||
Deny from all<br />
|
||
Allow from env=local_referal
|
||
</indent>
|
||
</Directory>
|
||
</example>
|
||
|
||
<p>Bu teknik hakkında daha ayrıntılı bilgi edinmek için ServerWatch
|
||
üzerindeki "<a
|
||
href="http://www.serverwatch.com/tutorials/article.php/1132731"
|
||
>Diğer sitelerin sizin resimlerinizle donatılmasını engellemek</a>"
|
||
belgesine bakınız.</p>
|
||
</section>
|
||
</section>
|
||
</manualpage>
|