Webmaster
Tasarım Dersleri
Kullanıcı girişi
Kimler çevrimiçi
Son yorumlar
- tamadır teşekkür ederim :)
2 weeks 1 gün önce - CVP:arkadaşım sen iyi niyetimi
2 weeks 1 gün önce - arkadaşım sen iyi niyetimi
2 weeks 2 days önce - CVP:şu cevabınn
2 weeks 2 days önce - şu cevabınn
2 weeks 3 days önce - CVP:Makaleniz hakkında
2 weeks 3 days önce - Makaleniz hakkında
2 weeks 3 days önce - oldukça güzel görünüyor. Bİz
3 weeks 2 days önce - sanal kontör
3 weeks 6 days önce - Cozum bulundu mu?
5 weeks 5 days önce
Etiket bulutu
PHP için Güvenlik Tavsiyeleri
İlk önce ftp'nize atmış olduğunuz dosyalara chmod uygulaması yapacağız.
Klasörler için: 755
Dosyalar için: 644
İzinleri bu şekilde ayarlamanız güvenlik için ilk adımı atmanıza yardımcı olur.
"php.ini" yapılandırması yapmamız gerekiyor.
Eğer server admini iseniz yani root yetkilere sahipseniz bu ayarları serverda bulunan tüm siteler için yapabilirsiniz genellikle "/usr/local/Zend/etc/" altında bulunan "php.ini" dosyasını açarak düzenleyebilirsiniz veya "httpd.conf" dosyasının doğru yapılandırılmasıyla da olur. Daha sonra apache'ye restart atmanız gerekmektedir.
Root değilseniz sadece kendi siteniz için yapmanız gerekiyorsa kök dizininizde (public_html) bir "php.ini" dosyası oluşturarak veya varolan "php.ini" dosyasının içerisine altta verdiğim kodları ekleyerek güvenliğinizi sağlayabilirsiniz. Fakat sitenizle aynı serverda bulunan diğer sitelerden kaynaklanan açıklardan yararlanan kişiler root olmayı başarırlarsa burada anlatılanlar yetersiz kalır, root olmayı başaramazlarsa ve sitenizin şifrelerini kaptırmazsanız güvendesinizdir.
***Altta anlattığım bilgiler iyi bir güvenlik için yapılması gerekenler olduğundan dolayı bunları uyguladıktan sonra bazı scriptlerinizin çalışması engellenmiş olabilir. Ama scriptin çalışmasını engelleyen değerleri iptal ederseniz script tekrar doğru şekilde çalışacaktır***
Şimdi gelelim "php.ini" yapılandırmasına:
"disable_functions" (Güvenlik)
"disable_functions" ile serverınızda birçok fonksiyonun çalışmasını engelleyebilirsiniz bu sayede sitenize inject edilen scriptler, sheller için güvenliğinizi almış olursunuz. Bu kadar fonksiyon fazla gelebilir ama iyi bir güvenlik için şart. Bu kadar sayıda devre dışı bırakılan fonksiyonlar ilk defa "******.org" adresinde verilmiştir.
Önerilen:
disable_functions = foreach, glob, openbasedir, posix_getpwuid, f_open, system,dl, array_compare, array_user_key_compare, passthru, cat, exec, popen, proc_close, proc_get_status, proc_nice, proc_open, escapeshellcmd, escapeshellarg, show_source, posix_mkfifo, ini_restore, mysql_list_dbs, get_current_user, getmyuid,pconnect, link, symlink, fin, passthruexec, fileread, shell_exec, pcntl_exec, ini_alter, parse_ini_file, leak, apache_child_terminate, chown, posix_kill, posix_setpgid, posix_setsid, posix_setuid, proc_terminate, syslog, allow_url_fopen, fpassthru, execute, shell, curl_exec, chgrp, stream_select, passthru, socket_select, socket_create, socket_create_listen, socket_create_pair, socket_listen, socket_accept, socket_bind, socket_strerror, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, openlog, apache_get_modules, apache_get_version, apache_getenv, apache_note, apache_setenv, virtual
disable_functions = glob, posix_getpwuid, array_compare, array_user_key_compare, ini_restore, exec, proc_get_status, proc_nice, proc_open, allow_url_fopen, fin, pconnect, system, dl, passthruexec, shell_exec, proc_close, proc_get_status, chown, chgrp, escapeshellcmd, escapeshellarg, fileread, passthru, popen,curl_exec, shell, execute
"safe_mode" (Güvenlik)
"Safe Mode" adından da anlaşılacağı gibi "Güvenli Mod" anlamına geliyor. "Safe Mode" genelde birçok serverda "Off" durumdadır ve bu da birçok tehlikeye davetiye çıkaran unsurlar arasında yer alır. "Güvenli Modu Açık" durumuna getirmek shellerin serverımızda istedikleri gibi dolaşmalarını, exploitlerin çalıştırılmasını ve komutların execute edilmelerini önler. Günümüzde "açık olan güvenlik modunu" kapalı duruma getiren scriptler mevcut fakat altta anlatılan önlemlerle bunun da önüne geçilebilir.
Önerilen:
safe_mode = on
"register_globals" (Güvenlik ve Performans)
php.ini dosyasında bulunan "post" "get" ile gönderilen değerlere kullanıcı adlarıyla ulaşılıp ulaşılamayacağını belirtir. Session, cookie değerlerini kendi adıyla tanımlayarak birer değişken olmasına neden olur. "Off" olarak ayarlanırsa bu gibi değerlere kendi tanımladığı şekilde ulaşılamaz.
Önerilen:
register_globals = off
"allow_url_fopen" default olarak "açık" şeklinde gelir ve bunun "on" açık olması "file_get_contents()", "include()", "require()" fonksiyonlar uzaktaki dosyaları da işlemesine olanak tanır. Bunlara verilen bilgiler hiçbir kontrolden geçirilmezse kritik güvenlik açıklarını sebep olur.
Önerilen:
allow_url_fopen = off
Bu değer kapalı yapıldığında "require" ve "include" ile uzaktan dosya çağırılması engellenmiş olur ve bu sayede büyük bir tehlikeden kurtulmuş olursunuz.
Önerilen:
allow_url_include = off
Bu seçenek sitenizin çalışmasında oluşacak bir hatayı tarayıcıya yansıtıp yansıtmayacağını belirler yani siteniz için diyelim bir forum veya portal kullanıyorsunuz ve bunların çalışması esnasında genelde "Fatal error: Call to undefined function get_header() in /home/vhosts/site.com/index.php on line 37" şeklinde benzeri hata görülür bunların gözükmesini engellemek için bu değeri kapalı duruma getirmek gerekir zira kötü niyetli kişiler sitenizin serverda bulunan tam yolunu öğrenmiş olurlar.
Önerilen:
display_errors = Off
Bu değer normalde "on" olarak gelir ve Windows sunucularında IIS, OmniHTTPD gibi buralarda kapatılması gerekir. Kendi sunucunuz için bu durum yoksa değiştirmenize gerek yoktur.
Önerilen:
cgi.force_redirect = on
"magic_quotes_gpc" (Güvenlik ve Performans)
Magic Quotes işlemi GET/POST yöntemiyle gelen Cookie datasını otomatikmen PHP script'e kaçırır. Önerilen bu değerin açık olmasıdır.
Önerilen:
magic_quotes_gpc = on
Magic quotes çalışma sürecinde data oluşturur, SQL'den exec()'den, vb.
Önerilen:
magic_quotes_runtime = on
"magic_quotes_sybase" (Güvenlik ve Performans)
Sybase-style magic quotes kullanır (Bunun yerine \' ' bununla '' kaçırır)
magic_quotes_sybase = on
"session.use_trans_sid" (Güvenlik)
Bu ayarı dikkatli ayarlayın, kullanıcı emaile aktif oturum ID'si içeren URL gönderebilir
Önerilen:
session.use_trans.sid = off
"open_basedir" (Güvenlik)
Burada belirttiğiniz bir dizin haricindeki dosyaları veya klasörleri görmeleri olanaksızdır yani /home/vhosts/site.com/public_html/dosyalar/ sitenizde sadece dosyalar dizininin görüntülenmesini istiyorsanız böyle yapılır veya hem dosyalar hemde resimlerin bulunduğu yerin gözükmesi içinde böyle /home/vhosts/site.com/public_html/resimler:
/home/vhosts/site.com/public_html/dosyalar/ bunlar haricindeki yerlerin görünmesi imkansızdır. /home/vhosts/site.com/public_html/resimler:
/home/vhosts/site.com/public_html/dosyalar/ yazan yere görünmesini istediğiniz dizinleri belirtin.
Önerilen:
open_basedir = "/home/vhosts/site.com/public_html/resimler:
/home/vhosts/site.com/public_html/dosyalar/"
"safe_mode_exec_dir" (Güvenlik)
Safe Mode açıkken bunu yaparsanız sadece belirttiğiniz dizinde işlem yapılmasına izin verirsiniz. Safe Mode kapalıyken burada belirttiğiniz dizinlerin dışında hiçbir dizinde işlem yapılamaz. "/home/vhosts/site.com/public_html/" yazan yere kendi dizininizi yazabilirsiniz. Böylece, diyelim "/etc" v.s dizininden herhangi birşey çalıştırmasına izin vermezsiniz.
Önerilen:
/home/vhosts/site.com/public_html/"
Safe Mode" yani "Güvenli Mod" açıkken yapılması tavsiye edilmez. Çünkü "safe mode" burada belirttiğiniz dizinde etkisiz kalacaktır. Güvenli Mod'un açık olması o dizinde işe yaramayacaktır. Güvenlik için, "Safe Mod" yani "Güvenli Mod" "off" kapalıyken kullanılması daha uygundur.
"asp_tags" (Güvenlik)
ASP Style < % % > taglarına izin verilip verilmeyeceği belirlenir, kapalı duruma getirilmesi önerilir.
Önerilen:
asp_tags=Off
"session.hash_function" (Güvenlik)
Oturumlar için Hash Fonksiyonu
0: MD5 (128 bits)
1: SHA-1 (160 bits)
Önerilen:
session.hash_function=0
"session.hash_bits_per_character" (Güvenlik)
Hash çevirirken her karakterde kaç bit saklansın
4 bits: 0-9, a-f
5 bits: 0-9, a-v
6 bits: 0-9, a-z, A-Z, "-", ","
Önerilen:
session.hash_bits_per_character = 5
"expose_php" (Güvenlik)
"expose_php" açık ise kapalı yapılması önerilir. Aksi takdirde PHP ile yaptığınız herşeyde sunucu tarafından PHP sürümü gibi bilgiler gösterilir. Hackerlar hatta Lamerlar bu bilgileri severler. Bunları engellemek için "off" konumuna getiriniz.
Önerilen:
expose_php = Off
"html_errors" (Güvenlik)
Bu değerin açık olması durumunda PHP tıklanabilir hata mesajları üretecektir. Kapalı olması güvenlik için önerilir.
Önerilen:
html_errors = Off
"max_execution_time" (Güvenlik)
Scriptinizi maksimum uygulamayı yürütme zamanı mesela kullanıcı bir linke tıkladı ve bu linkin açılması belirtilen saniyeden fazla olursa sayfa sitenizin serverda bulunduğu tam yolu göstererek hata verir. Bu hataların gözükmesi güvenlik açısından sakıncalıdır. 300 saniye yazan yeri istediğiniz zaman ile değiştirebilirsiniz.
Önerilen:
max_execution_time = 300
"max_input_time" (Güvenlik)
Scriptinizin aynı şekilde bir dataya ulaşmak için istek yolladığında maksimum geçen zaman
Önerilen:
max_input_time = 300
"ServerSignature" (Güvenlik ve Performans)
"ServerSignature" sitenizde bulunmayan bir dosyanın bakılması durumunda bu sayfanın altında serverla ilgili bir bilgi yer alır ve bu da performansı düşürür ayrıca kötü niyetli kişiler serverla ilgili bir bilgi öğrenmiş olurlar.
Önerilen:
ServerSignature = Off
"UseCanonicalName" (Performans)
Bu ayarın açık olması Apache self-referencing URL oluşturduğunda Server ismi ve porttan oluşan bir çözülmüş isim kullanır.
Önerilen:
UseCanonicalName = Off
"HostnameLookups" (Performans)
"HostnameLookups" açık olması performansın düşmesine neden olur. IP numarası DNS sunucusundan bakılarak adres öğrenilir buda performansı düşürür.
Önerilen:
HostnameLookups = Off
"ExtendedStatus" (Performans)
Serverın durumunu öğrenmek için server-status kullanılıyorsa Apache her an bu işlemcinin çağrılabileceğini beklediği için hazır bekler ve her an sistem saatini öğrenmesi gerekir bu da performansı düşürür.
Önerilen:
ExtendedStatus = Off
"register_long_arrays" (Güvenlik ve Performans)
Bu değerin "on" açık olması durumunda sisteminizde her script çalışmayacaktır install v.s yapmakta hatalarla karşılaşabilirsiniz ama iyi bir güvenlik ve performans için "off" duruma getirilir.
Önerilen:
register_long_arrays = Off
"allow_call_time_pass_reference" (Performans)
Fonksiyonların çağrılma zamanında yaşanan uyumsuzluklarla ilgili uyarı verir.
Önerilen:
allow_call_time_pass_reference = Off
"enable_dl" (Güvenlik)
Bu değerin "off" kapalı olması gerekir aksi halde kişilerin sistemde php modüllerinde çalışma yapmasına olanak sağlar ve sistemde rahat dolaşmalarını sağlar güvenlik için kapalı olması gerekir.
Önerilen:
enable_dll = Off
"track_errors" (Güvenlik ve Performans)
Sürücülerde meydana gelen hatalarda yetki verildiği taktirde hata mesajı errormsg olarak değişkende gösterilir.
Önerilen:
track_errors = Off
"file_uploads" (Güvenlik)
Açık olursa eğer sunucuda dosya yüklenmesine izin verilmiş olur ve bu da ciddi bir güvenlik açığına neden olur eğer kullandığınız scriptden herhangi bir dosya yüklemeniz gerekmiyorsa mutlaka kapalı duruma getiriniz. Bu sayede sitenize herhangi bir shell, script inject edise bile kesinlikle dosya yüklenmesine izin vermez.
Önerilen:
file_uploads = Off
"ignore_repeated_errors" (Güvenlik ve Performans)
Açık olursa tekrarlanan hataları loglamaz.
Önerilen:
ignore_repeated_errors = Off
"ignore_repeated_source" (Güvenlik ve Performans)
Tekrarlanan mesajlar engellendiğinde, mesaj kaynağını engeller Bu ayar açık yapıldığında hataları loglamayacaktır farklı dosyalardan ya da kaynaklardan tekrarlanan mesajlarla.
Önerilen:
ignore_repeated_source = Off
"display_startup_errors" (Güvenlik ve Performans)
"display_errors" değeri "on" açık olsa bile, Php'nin çalışma sırasında meydana gelen hatalar gözükmeyecektir. Bu değerin şiddetle "off" kapalı duruma getirilmesi önerilir.
Önerilen:
display_startup_errors = Off
"safe_mode_gid" (Güvenlik)
UID - GID kontrollerini sadece UID ile yapmasına izin verir böylece aynı grupta dosyalar bulunsa bile göremezler yani serverda bulunan diğer clientların scriptlerini v.s görmeleri engellenir.
Önerilen:
safe_mode_gid = Off
"output_buffering = 4096" (Performans)
4 KB'lik bir tampon çıktısı ayarlar "output buffer"
Önerilen:
output_buffering = 4096
"register_argc_argv" (Performans)
Kapalı olursa gereksiz ARGV ve ARGC kayıtlarını önler. PHP nin ARGV ve ARGC değişkenlerini bildirip bildirmemesini anlatır.
Önerilen:
register_argc_argv = Off
"php_value session.use_trans_sid - php_value session.use_only_cookies"
Bu şekilde ayarlanması URL'deki PHPSESSID bilgilerini kaldırır.
Önerilen:
php_value session.use_trans_sid = 0
php_value session.use_only_cookies = 1
"session.auto_start"
Oturum başlatmayı başlangıçta isteme
Önerilen:
session.auto_start = 0
"session.cookie_lifetime"
Cookie'nin zaman ayarı
Önerilen:
session.cookie_lifetime = 0
"memory_limit"
Scriptin tükettiği maksimum hafıza miktarı
Önerilen:
memory_limit = 8M
"post_max_size"
PHP'nin kabul edeceği maksimum POST data boyutu
Önerilen:
post_max_size = 256K
"upload_max_filesize"
Upload edilen dosyaların maksimum boyutu
Önerilen:
upload_max_filesize = 256K
"upload_tmp_dir"
Temporary klasörü HTTP'den gelen dosyalar, ayarlanmazsa default klasörü kullanacaktır.
Önerilen:
upload_tmp_dir = /var/www/foo.bar/sessions
"variables_order"
(Ortam, GET, POST, Çerez, Sunucu) bunların işlenmedeki sıralarını belirler.
Önerilen:
variables_order = "EGPCS"
Üstte belirttiğim kodları "php.ini" dosyanıza alt alta ekleyebilirsiniz.
İnanç BAYKAL
Anket
Son Konular
2012-03-22 19:47 - Geliştirdiğin kodları satmak ister misin
2012-02-12 23:21 - SMF forumu vbulletin foruma aktarmak
2011-12-14 21:50 - Motorlu araçlar otomobil vergisi sorgulama
2011-12-14 21:47 - Sorgulamalar
2011-12-11 14:33 - Ben az önce ne arayacaktım
2011-09-10 22:51 - DSLR Fotograf Makinası sınıflandırması
2011-09-09 17:33 - ‘Crop Factor’ Nedir, hakkında bilgi
2011-09-09 17:30 - Fotograf Rehberi
2011-08-20 21:30 - Samsung LEDTV'lerde .SRF ve XFS süprizi
2011-08-19 00:45 - 2011 yılının web tasarım trendleri
2011-04-09 20:18 - Alan adları gerçek isim sahiplerine verilecek!
2011-01-13 01:43 - SEO İçin Dikkat Edilmesi Gereken Hususlar
2011-01-13 01:42 - Meta tag SEO Optimization
2011-01-13 01:41 - Google Adsense Hakkında Detaylı Bilgi
2011-01-13 01:40 - Soru Ve Cevaplar ile Google Adsense
2011-01-13 01:39 - Arama motoru Google ve Pagerank
2011-01-13 01:38 - Seo Sözlüğü
2011-01-13 01:37 - Google Arama Özellikleri
2011-01-13 01:36 - Adsense Reklam Yerleşimi
2011-01-13 01:35 - Robots.txt Dosyası Kullanım Robotları Yölendirme Kontrol
2011-01-13 01:34 - Sitenizin Google ve Web deki Yeri
2011-01-13 01:33 - Arama Motoru Bilgi ve İpuçları
2011-01-13 01:31 - Arama Motorları Teknikleri
2011-01-13 01:29 - Google Pagerank Detaylı Anlatım
2011-01-13 01:27 - Sitenize Ziyaretçiler En Çok Hangi Kelimeler İle Gelmiş
2011-01-13 01:25 - Pagerank Nedir?
2011-01-13 01:19 - Fireworks Shadow and Glow
2011-01-13 01:18 - Fireworks Sharpen
2011-01-13 01:16 - Fireworks Other
2011-01-13 01:13 - Fireworks Blur
2011-01-13 01:09 - Fireworks Bevel and Emboss
2011-01-13 01:05 - Fireworks Adjust Color
2011-01-13 01:03 - Fireworks Save as Style
2011-01-13 00:58 - Fireworks Text Menüsü
2011-01-13 00:54 - Fireworks Select Menüsü
2011-01-13 00:54 - Fireworks Modify Menüsü
2011-01-13 00:51 - Fireworks View Menüsü
2011-01-13 00:18 - Fireworks Edit Menüsü
2011-01-13 00:16 - Fireworks File Menüsü
2011-01-13 00:05 - İnternet - Web Tarayıcılar (Browser)
2011-01-13 00:04 - İnternet - Web Server Yazılımları
2011-01-13 00:03 - İnternet ve Web İlişkisi
2011-01-13 00:02 - İnternette Kullanılan Protokoller
2011-01-13 00:01 - İnternet - World Wide Web (WWW) Nedir?
2011-01-13 00:00 - İnternet - URL nedir?
2011-01-12 23:43 - İnternet Backorder Nedir?
2011-01-12 23:34 - İnternet - Virüs Nedir?
2011-01-12 23:32 - İnternet Paypal nedir? Nasıl Kullanılır?
2011-01-12 23:31 - İnternet - DNS Nedir?
Günün Konuları
Facebook . SEO . Arama motoru . seo nedir . SEO sanatı . harddisk kullanımı . yerli arama motoru . Tayfun Acarer . Bilgi Teknolojileri ve İletişim Kurumu . Anaposta Projesi . Web siteleri . link değişimi . hizmet . çalıntı içerik . Facebook üyelik iptali . facebook üyelik . hesap silme . facebook hesabı . twitter namaz . twitter ezan . twitter namaz vakitleri . ezan vakti . namaz vakitleri . watt hesaplaması . pc ne kadar yakar . elektirik hesaplaması . fatura . elektirik . Fake mail . sahte elektronik posta . internet suçları . fake email . php GMT . time zone . gmdate nedir . gmmktime nedir . gmdate hakkında bilgi . php de tarih . dmoz . dmoza yeni eklenen siteler . dmozdan silinen siteler . dmoz yöneticileri . dmoza nasıl site eklenir . püf noktalar . PHP DOUBLE . PHP FLOAT . Toplama hatası . Twitter api . Canonical . Canonical Url . drupal dil sorunu . drupal türkçe sorunu . drupal türkçe . drupal yardım . Seonun tanımı . Google de yukarıda çıkmak . Seo Tarihi . süreklilik . Arama motoru optimize . Neden SEO . SEO Nasıl Yapılır . ziyaretçi nasıl kazanılır . kontör sitesi . kontör . turkcell kontör . vodafone kontör . avea kontör . ucuz kontör . Alexa . alexa hakkında bilgi . alexa raporları . alexa nasıl kullanılır . alexa ne işe yarar . alexa bilgi . alan adı . site adresi . web site adresi . domain satan yerler . elektrik hesaplaması . elektrik .














Yeni yorum gönder