From 6beeb1b708550be0d4a53b272283e17e5e35fe17 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:01:30 +0200 Subject: Adding upstream version 2.4.57. Signed-off-by: Daniel Baumann --- docs/manual/env.html.tr.utf8 | 529 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 529 insertions(+) create mode 100644 docs/manual/env.html.tr.utf8 (limited to 'docs/manual/env.html.tr.utf8') diff --git a/docs/manual/env.html.tr.utf8 b/docs/manual/env.html.tr.utf8 new file mode 100644 index 0000000..66ffec8 --- /dev/null +++ b/docs/manual/env.html.tr.utf8 @@ -0,0 +1,529 @@ + + + + + +Apache’de Ortam Değişkenleri - Apache HTTP Sunucusu Sürüm 2.4 + + + + + + + +
<-
+

Apache’de Ortam Değişkenleri

+
+

Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

+
+ +

Apache HTTP Sunucusunu etkileyen ortam değişkenleri iki çeşittir.

+ +

İ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.

+ +

İ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.

+ +

Bu değişkenlere ortam değişkenleri 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.

+
+ +
top
+
+

Ortam Değişkenlerinin Atanması

+ + + +

Temel Ortamda Değişiklik

+ + +

Apache ortamında bir ortam değişkenine müdahale etmenin en temel + yolu hiçbir koşula tabi olmayan SetEnv yönergesini kullanmaktır. Bu değişkenleri Apache + başlatılırken sistem ortam değişkenleri haline getirmek için + PassEnv yönergesi + kullanılabilir.

+ + +

İsteğe Bağlı Şartlı Atamalar

+ + +

Esnekliği arttırmak için, mod_setenvif 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 [E=...] seçeneğinin + kullanıldığı mod_rewrite modülünün RewriteRule yönergesi ile + sağlanmıştır.

+ + +

Eşsiz Betimleyiciler

+ + +

Son olarak, mod_unique_id UNIQUE_ID + 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.

+ + +

Standart CGI Değişkenleri

+ + +

Apache yapılandırmasıyla atanan ve kabuğa aktarılan ortam + değişkenlerinden başka CGI + Belirtiminin gerektirdiği istekler hakkında temel bilgileri + içeren ortam değişkenlerinin CGI betikleri ve SSI sayfalarınca + atanabilmesi sağlanmıştır.

+ + +

Bazı Yetersizlikler

+ + +
    +
  • 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.
  • + +
  • CGI betiklerini çalıştırmak için suexec + kullanıldığında ortam, CGI betikleri çalıştırılmadan önce + güvenilir değişkenler kalacak şekilde temizlenir. + Güvenilir değişken listesi suexec.c içinde + derleme sırasında tanımlanır.
  • + +
  • 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.
  • + +
  • 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şağıya + bakın.
  • + +
  • İsteklerin işleme konması sırasında SetEnv yönergesi geç çalıştırılır, + yani SetEnvIf ve + RewriteCond gibi + yönergeler SetEnv ile + atanan değişken değerlerini görmezler.
  • + +
  • mod_autoindex ile dizin listesi oluşturulması + veya bir DirectoryIndex + için yol aranması gibi bir dahili alt + istek için sunucu yol araması yaparken isteklere özgü + ortam değişkenleri alt istekler tarafından miras alınMAZ. Buna ek + olarak, mod_setenvif modülünün devreye girdiği API + fazlarından dolayı yapılan alt isteklerde + SetEnvIf yönergeleri + ayrı ayrı değerlendirilMEZ.
  • +
+ +
top
+
+

Ortam Değişkenlerinin Kullanımı

+ + + + +

CGI Betikleri

+ + +

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 CGI + Öğreticisine bakabilirsiniz.

+ + +

SSI Sayfaları

+ + +

Sunucu tarafında mod_include modülünün + INCLUDES süzgeci ile yorumlanan SSI sayfalarında ortam + değişkenleri echo 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 + SSI Öğreticisine bakabilirsiniz.

+ + +

Erişim Denetimi

+ + +

Require env ve Require not env + yönergeleri sayesinde ortam değişkenlerine dayalı olarak sunucuya + erişim denetim altında tutulabilir. Bunlar SetEnvIf 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.

+ + +

Şartlı Günlük Kaydı

+ + +

Ortam değişkenleri LogFormat yönergesinin %e seçeneği + kullanılarak erişim günlüğüne kaydedilebilir. Bundan başka, + CustomLog yönergesi + sayesinde isteklerin günlüğe kaydedilip kaydedilmeyeceğine ortam + değişkenlerine dayalı olarak karar verilmesi sağlanabilir. Bunlar + SetEnvIf 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, gif 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.

+ + +

Şartlı Yanıt Başlıkları

+ + +

Header 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.

+ + + +

Harici Süzgeçlerin Etkinleştirilmesi

+ + +

mod_ext_filter tarafından yapılandırılan harici + süzgeçler ExtFilterDefine yönergesinin disableenv= ve + enableenv= seçenekleri kullanılarak bir ortam + değişkenine bağlı olarak etkinleştirilebilir.

+ + +

URL Kurgulaması

+ + +

RewriteCond + yönergesinin SınamaDizgesi olarak kullanılan + %{ENV:değişken} biçemi + mod_rewrite yeniden yazma motorunun ortam + değişkenlerine bağlı kararlar almasını mümkün kılar. Yalnız şuna + dikkat ediniz: mod_rewrite’ta ENV: + öneki kullanılmadan belirtilen değişkenler ortam değişkenleri + değillerdir. Onlar mod_rewrite’a özgü diğer + modüllerden erişilemeyen özel değişkenlerdir.

+ +
top
+
+

Özel Amaçlı Ortam Değişkenleri

+ + +

Birlikte çalışabilirlik sorunları Apache’nin belli istemcilerle + veri alışverişi sırasında davranışını değiştirmesini gerektirebilir. + Genellikle SetEnv ve + PassEnv yönergelerinden + başka BrowserMatch + gibi yönergelerle ortam değişkenleri atanarak bunu sağlayan + mekanizmaların olabildiğince esnek davranabilmesi sağlanabilir.

+ +

downgrade-1.0

+ + +

İstek, daha yüksek bir HTTP protokolüyle yapılmış olsa bile + HTTP/1.0 isteği olarak ele alınır.

+ + +

force-gzip

+ +

DEFLATE süzgeci etkinse tarayıcının tercih ettiği + kodlama koşulsuz olarak yoksayılarak sıkıştırılmış çıktı + gönderilir.

+ +

force-no-vary

+ + +

İstemciye gönderilmeden önce yanıttan Vary 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 + force-response-1.0 değişkeninin de atanmasına sebep + olur.

+ + +

force-response-1.0

+ + +

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.

+ + + +

gzip-only-text/html

+ + +

Bu değişkene "1" değeri atandığında text/html’den + farklı içerik türleri için mod_deflate modülü + tarafından sağlanan DEFLATE çıktı süzgeci iptal + edilir. Sıkıştırılmış olarak saklanan dosyalar kullanıyorsanız bu + değişkeni mod_negotiation modülü de dikkate alır + (kimliğine bakarak sadece gzip için değil, tüm kodlamalar için bunu + yapar).

+ + +

no-gzip

+ +

Bu değişken atandığında, mod_deflate modülünün + DEFLATE süzgeci kapatılır ve + mod_negotiation modülü kodlanmış kaynak teslimatını + reddeder.

+ + + +

no-cache

+

2.2.12 sürümünden beri kullanılabilmektedir.

+ +

Atandığı takdirde, mod_cache 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.

+ + + +

nokeepalive

+ + +

Bu değişken atandığında, KeepAlive yönergesi iptal edilir.

+ + + +

prefer-language

+ + +

Değer olarak en, ja veya + x-klingon gibi bir dil kısaltması verilerek atanmışsa + mod_negotiation 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 uzlaşım süreci uygulanır.

+ + + +

redirect-carefully

+ + +

İ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.

+ + + +

suppress-error-charset

+ + +

2.0.54 sürümünden beri mevcuttur.

+ +

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.

+ +

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.

+ +

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.

+ +
+

Güvenlik Uyarısı

+ +

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.

+
+ + + +

force-proxy-request-1.0, + proxy-nokeepalive, proxy-sendchunked ve + proxy-sendcl, proxy-chain-auth, + proxy-interim-response, proxy-initial-not-pooled +

+ +

Bu yönergeler mod_proxy modülünün normal protokol + davranışını değiştirirler. Daha ayrıntılı bilgi için + mod_proxy ve mod_proxy_http + belgelerine bakınız.

+ + +
top
+
+

Örnekler

+ + +

Bozuk başlıkların CGI betiklerine aktarılması

+ + +

2.4 sürümünden itibaren, mod_cgi 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: Unusual Web Bugs, slide 19/20).

+ +

Bozuk başlıklar gönderdiği halde bunlara dokunulmamasını gerektiren + bir istemciniz varsa, mod_setenvif ve + mod_headers modüllerinin sunduğu yapıyı örnekteki gibi + kullanarak bu sorunun üstesinden gelebilirsiniz:

+ +
#
+# Aşağıdaki satırlarla bir istemcinin gönderdiği bozuk
+# Accept_Encoding başlıklarının istenildiği gibi işlenmesi
+# sağlanabilir.
+#
+SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
+RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
+ + + + +

Protokolü yanlış yorumlayan tarayıcıların davranışlarının + değiştirilmesi

+ + +

Önceki sürümlerde bilinen istemci davranışlarına karşı önlem olarak + aşağıdaki satırların httpd.conf 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.

+ +
#
+# Aşağıdaki yönergeler normal HTTP yanıt davranışını değiştirirler.
+# İlk yönerge Netscape 2.x ve kendini öyle gösteren tarayıcılar için
+# kalıcı bağlantıyı (keepalive) iptal eder. İkinci yönerge ise HTTP/1.1
+# protokolü bozuk olan ve 301/302 durum kodlu yönlendirme yanıtları
+# kullanıldığında kalıcı bağlantıları gerektiği gibi desteklemeyen
+# Microsoft Internet Explorer 4.0b2 içindir.
+#
+BrowserMatch "Mozilla/2" nokeepalive
+BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+
+#
+# Aşağıdaki yönergeler HTTP/1.0 yanıtlarından başkasına yabancı olan
+# tarayıcılara HTTP/1.1 yanıtlarının gönderilmesini iptal eder.
+#
+BrowserMatch "RealPlayer 4\.0" force-response-1.0
+BrowserMatch "Java/1\.0" force-response-1.0
+BrowserMatch "JDK/1\.0" force-response-1.0
+ + + +

Resim isteklerinin erişim günlüğüne kaydedilmemesi

+ + +

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.

+ +
SetEnvIf Request_URI \.gif image-request
+SetEnvIf Request_URI \.jpg image-request
+SetEnvIf Request_URI \.png image-request
+CustomLog "logs/access_log" common env=!image-request
+ + + + +

“Resim Hırsızlığı” için önlem alınması

+ + +

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 /siteler/resimler dizini altında tutulduğu + varsayılmıştır.

+ +
SetEnvIf Referer "^http://www\.example\.com/" local_referal
+# Referrer bilgisi göndermeyen tarayıcılara izin verelim
+SetEnvIf Referer "^$" local_referal
+<Directory "/siteler/resimler">
+  Require env local_referal
+</Directory>
+ + +

Bu teknik hakkında daha ayrıntılı bilgi edinmek için ServerWatch + üzerindeki "Diğer sitelerin sizin resimlerinizle donatılmasını engellemek" + belgesine bakınız.

+ +
+
+

Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

+
top

Yorumlar

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
+
+ \ No newline at end of file -- cgit v1.2.3