• Page 1 of 1
  • 1
...:::BAAU Forum:::... » ..:::Ordan Burdan:::.. » İnternet-bir virtual dünya! » Xaker. (Serverinizi (saytınızı) hacklanmadan qorumaq!)
Xaker.
Administrator Tarix: Çərşənbə, 2009-Noyabr-11, 18:41 | Sıra nömrəsi: 1

Yazıları: 72
Halaldır.
30
İlk öncə saytınızdaki qovluqlara 755 fayllara 644 chmod verin
Əgər Server root adminisinizsə onda "/usr/local/Zend/etc/" , "/usr/local/lib/" də php.ini faylını açaraq redaktə edə bilərsiniz. Aşağıdakı yazılmış Funksiyaları yerinə yetirdikdən sonra apacheyə restart vermək lazımdır.

Əgər Server admini deyilsinizsə sadəcə serverdən saytınız varsa o zaman public_html daxil olaraq php.ini faylı yaradırın və içinə aşağıda göstərilmiş kodları əlavə (redaktə) edin.
Qeyd: Əgər php.ini faylının yaradılmasında və təhlükəsizlik qaydalarının qurulmasında çətinlik çəkirsinizsə onda php.ini faylını buradan yükləyib FTP-də "public_html" qovluğunun içinə bu faylı atmağınız kifayətdir. Biz artıq bu faylda lazım olan təhlükəsizliyi sizin əvəzinizə qurmuşuq.
Kimsə aşağıda göstərilən bütün əməliyyatı özü etmək istəyirsə onda aşağıda yazılanlara əməl etsin.

İndi keçək "php.ini" quraşdırılmasına:

"disable_functions" (Təhlükəsizlik)
"disable_functions" ilə serverinizdə bir çox funksiyaların işinə maneə törədə bilərsiniz. Bunun sayəsində saytınıza inject edilən scriptlərdən və atılımış shellər üçün təhlükəsizlik qurmuş olursunuz. Bu qədər funksiya çox görünə bilər amma yaxşı bir təhlükəsizlik üçün şərtdir.
Tövsiyə edilir:

Kod:

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

Əgər bu qədər funksiyanı bağlamaq istəmirsinizsə o zaman aşağıdaki kimi yazmaq təhlükəsizliyiniz üçün kifayətdir.

Kod:

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

Qeyd: "allow_url_fopen" funksiyasını əgər bağlasanız bu zaman saytınızdan php sonluğu ilə bitən fayllara sorğu etmək olmayacaq. Mələsən: http://big.az/chat/parlaq.php tipli sorğu faylları işləməyəcək. Kimə php sonluqlu fayllara sorğu zamanı skriptin çalışması lazımdırsa bu kodu yuxarıdakı bağlanılan funksiyalar siyahısından çıxartsın.

"safe_mode" (Təhlükəsizlik)
"Safe Mode" adındanda göründüyü kimi "Qorunma Rejimi" deməkdir. "Safe mode" əksər serverlərdə bağlı (off) olduğuna görə serverde istənilən sayta keçid almaq mümkündür. Ona görə Safe mode "on" edirik bu zaman exploitlərin çalışması və əmrlərin execute edilmələrinin qarşısı alınacaq. Bəzi Scriptlər safe_mode = on olanda tam işləmədiyindən server adminləri safe mode yandırmırlar ama bununda çarəsi var. Bunun üçün Serverdə safe mode yandırırıq və hansı sayta safe_mode = off lazımdırsa həmin saytda php.ini faylında safe_mode = off edirik. Bununlada yalnız həmin saytda safe mode söndürürük.

Tövsiyə edilir:

Kod:

safe_mode = on

Yuxarıda yazılanların hamısını etsəniz serverdə shell funksiyaları işləməyəcək.

"register_globals" (Təhlükəsizlik və Performans)
php.ini faylında olan "post" "get" ilə göndərilən sorğulara istifadəçi adlarıyla sorğu edilə bilinib və ya bilinməyəcəyini ifadə edir. Session, cookie funksiyalarını öz adıyla təyin edərək bir dəyişən olmasına səbəb olur. "Off" olaraq nizamlansa bu kimi funksiyalara özünün təyin etdiyi şəkildə istifadə oluna bilinməsinin qarşısı alınır.
Tövsiyə edilir:

Kod:

register_globals = off

Qeyd: Əgər get və post sorğusundan istifadə edirsinizsə bu funksiyanı bağlı saxlamayın.

"allow_url_fopen" (Təhlükəsizlik)
"allow_url_fopen" susmaya görə "açıq" şəklində gəlir və bunun "on" açıq olması "file_get_contents()", "include()", "require()" funksiyaları vasitəsi ilə digər faylların da işləməsinə imkan yaradır. Bu funksiya ilə verilən məlumatlar heç bir nəzarətdən keçirilməzsə kritik təhlükəsizlik açıqlarına səbəb ola bilər.
Tövsiyə edilir:

Kod:

allow_url_fopen = off

Qeyd: "allow_url_fopen" funksiyasını əgər bağlasanız bu zaman saytınızdan php sonluğu ilə bitən fayllara sorğu etmək olmayacaq. Mələsən: http://big.az/chat/parlaq.php tipli sorğu faylları işləməyəcək. Kimə php sonluqlu fayllara sorğu zamanı skriptin çalışması lazımdırsa allow_url_fopen = on olaraq saxlasın.

"allow_url_include" (Təhlükəsizlik)
Bu dəyişən bağlı edildiyində "require" və "include" ilə uzaqdan digər bir fayl çağırılmasa maneə törətmiş olacaqsınız. Bunun sayəsində də böyük bir təhlükədən xilas olmuş olursunuz.
Tövsiyə edilir:

Kod:

allow_url_include = off

"display_errors" (Təhlükəsizlik)
Bu funksiya saytınızın işində meydana gələcək səhvləri əks etdirib əks etdirməyəcəyini təyin edir. Yəni saytınız üçün deyək bir forum və ya portal istifadə edirsiniz . Və Bunların çalışması əsnasında "Fatal error: Call to undefined function get_header() en /home/vhosts/site.com/index.php on line 37" şəklində səhv görünür. Bu səhvlərin görünməsini bağlamaq üçün bu funksiyanı bağlı vəziyyətdə saxlamaq lazımdır. Çünki bu funksiya pis niyyətli kəslərin saytınızın serverdə olan tam yolunu göstərmiş olur.
Tövsiyə edilir:

Kod:

display_errors = Off

"cgi.force_redirect" (Təhlükəsizlik)
Bu funksiya normalda "on" olaraq gəlir və Windows serverlərində IIS, OmniHTTPD kimi yerlərdə funksiyanın bağlanılması lazımdır. Öz serverinizdə bu funksiya yoxdursa dəyişdirməyinizə ehtiyac yoxdur.
Tövsiyə edilir:

Kod:

cgi.force_redirect = on

"magic_quotes_gpc" (Təhlükəsizlik və Performans)
Magic Quotes əməliyyatı GET/POST üsuluyla gələn Cookie verilənini avtomatik olaraq PHP scriptə qaçırır.
Tövsiyə edilir:

Kod:

magic_quotes_gpc = on

"magic_quotes_runtime" (Təhlükəsizlik və Performans)
Magic quotes iş müddətində dəyişən meydana gətirir, SQLdən exec()dən, vs.
Tövsiyə edilir:

Kod:

magic_quotes_runtime = on

"magic_quotes_sybase" (Təhlükəsizlik və Performans)
Sybase-style magic quotes istifadə edir (Bunun yerinə ' ' bununla '' qaçırır)
Tövsiyə edilir:

Kod:

magic_quotes_sybase = on

"session.use_trans_sid" (Təhlükəsizlik)
Bu nizamı diqqətli nizamlayın, istifadəçi E-mailə aktiv ID-si olan URL göndərə bilər
Tövsiyə edilir:

Kod:

session.use_trans.sid = off

"open_basedir" (Təhlükəsizlik)
Burada ifadə edilən bir silsilə xaricindəki faylları və ya qovluqları görmək qeyri-mümkündür. Yəni /home/username/public_html/qovluqlar/ saytınızda yalnız faylların görüntülənməsini istəyirsinizsə belə edilir. Həm faylların həm də şəkillərin olduğu yerin görünməsi üçün aşağıdakından istifadə olunur /home/vhosts/site.com/public_html/resimler:
/home/username/public_html/fayllar/ bundan kənar yerlərin görünməsi mümkün deyil.
Tövsiyə edilir:

Kod:

open_basedir = "/home/username/public_html/resimler:
/home/username/public_html/fayllar/"

"asp_tags" (Təhlükəsizlik)
ASP Style < % % > teqlərinə icazə verilib verilməyəcəyi təyin edir.
Tövsiyə edilir:

Kod:

asp_tags=Off

"session.hash_function" (Təhlükəsizlik)
Hash Funksiyası
0: MD5 (128 bits)
1: SHA-1 (160 bits)
Tövsiyə edilir:

Kod:

session.hash_function=0

"session.hash_bits_per_character" (Təhlükəsizlik)
Hash çevirərkən hər xarakterdə neçə bit saxlansın
4 bits: 0-9, a-f
5 bits: 0-9, a-v
6 bits: 0-9, a-z, A-Z, "-", ","
Tövsiyə edilir:

Kod:

session.hash_bits_per_character = 5

"expose_php" (Təhlükəsizlik)
"expose_php" açıqdırsa bağlı edilməsi tövsiyə edilir. Əks halda PHP ilə etdiyiniz hər şeydə server tərəfindən PHP distributivi kimi məlumatlar göstəriləcək. Hackerlər hətta Lamerlər bu məlumatları sevərlər. Bunlara maneə törətmək üçün "off" seçimini seçin.
Tövsiyə edilir:

Kod:

expose_php = Off

"html_errors" (Təhlükəsizlik)
Bu funksiyanın açıq olması vəziyyətində səhv mesajları çıxacaq.
Tövsiyə edilir:

Kod:

html_errors = Off

"max_execution_time" (Təhlükəsizlik)
Bu funksiya Scriptin icra olunmasına təyin olunmuş müddəti göstərir. Məsələn istifadəçi bir linkə basdı və bu linkin açılması üçün təyin olunan saniyədən çox zaman keçərsə səhifə saytınızın serverdə olduğu tam yolu göstərərək səhv verə bilər. Bu səhvlərin görünməsi təhlükəsizlik baxımından təhlükəlidir. 300 saniyə yazılan yerdə istədiyiniz zamanı təyin edə bilərsiniz.
Tövsiyə edilir:

Kod:

max_execution_time = 300

"max_input_time" (Təhlükəsizlik)
Scriptin təyin edilən sorğunu icra etməsi üçün keçən maksimum zamanı göstərir.
Tövsiyə edilir:

Kod:

max_input_time = 300

"ServerSignature" (Təhlükəsizlik və Performans)
"ServerSignature" saytınızda tapılmayan bir faylın baxılması vəziyyətində bu səhifənin altında serverlə əlaqədar bir məlumat alır və bu da performansı azaldır. Bununlada pis niyyətli kəslər serverlə əlaqədar məlumatı öyrənmiş olarlar.
Tövsiyə edilir:

Kod:

ServerSignature = Off

"UseCanonicalName" (Performans)
Bu nizamın açıq olması Apache self-referencing URL meydana gətirdiyində Server adı və portdan ibarət yaranan bir ad istifadə edir.
Tövsiyə edilir:

Kod:

UseCanonicalName = Off

"HostnameLookups" (Performans)
"HostnameLookups" açıq olması performansın düşməsinə səbəb olur. IP ünvanı DNS serverindən baxılaraq öyrənilə bilər buda performansı aşağı salır.
Tövsiyə edilir:

Kod:

HostnameLookups = Off

"ExtendedStatus" (Performans)
Serverin vəziyyətini öyrənmək üçün server-status istifadə edilirsə Apache hər an bu prosessorun çağrıla biləcəyini gözlədiyi üçün hazır gözləyir və hər an sistem saatını öyrənməsi lazım olur bu da performansı aşağı salır.
Tövsiyə edilir:

Kod:

ExtendedStatus = Off

"register_long_arrays" (Təhlükəsizlik və Performans)
Bu funksiyanın "on" açıq olması vəziyyətində sisteminizdə hər script işləməyəcək install və s. etməkdə səhvlərlə qarşılaşa bilərsiniz amma yaxşı bir təhlükəsizlik və performans üçün "off" vəziyyətində saxlanılması gərəkdir.
Tövsiyə edilir:

Kod:

register_long_arrays = Off

"allow_call_time_pass_reference" (Performans)
Funksiyaların çağrılması zamanı yaranan uyğunsuzluqlarla əlaqədar xəbərdarlıq verir.
Tövsiyə edilir:

Kod:

allow_call_time_pass_reference = Off

"enable_dl" (Təhlükəsizlik)
Bu funksiyanın "off" bağlı olması lazımdır. Əks halda pis niyyətli insanların sistemin php modullarında iş görməsinə imkan yaradır və sistemdə rahat gəzmələrini təmin edir. Təhlükəsizlik üçün bağlı olması lazımdır.
Tövsiyə edilir:

Kod:

enable_dll = Off

"track_errors" (Təhlükəsizlik və Performans)
Sürücülərdə meydana gələn səhvlərdə səlahiyyət verildiyi təqdirdə səhv mesajı errormsg olaraq dəyişəndə göstərilir.
Tövsiyə edilir:

Kod:

track_errors = Off

"file_uploads" (Təhlükəsizlik)
Açıq olarsa serverdə fayl yüklənməsinə icazə verilmiş olacaq və bu da ciddi bir təhlükəsizlik açığına səbəb olur. Əgər istifadə etdiyiniz scriptdə hər hansı bir fayl yüklənilməsindən istifadə etmirsinizə bu funksiyanı mütləq bağlı vəziyyətə gətirin. Bunun sayəsində saytınızı böyük bir təhlükədən shell, script inject və s. zərərli yükləmələrdən qoruya bilərsiniz.
Tövsiyə edilir:

Kod:

file_uploads = Off

"ignore_repeated_errors" (Təhlükəsizlik və Performans)
Açıq olsa təkrarlanan səhvləri loglamaz.
Tövsiyə edilir:

Kod:

ignore_repeated_errors = Off

"ignore_repeated_source" (Təhlükəsizlik və Performans)
Bu nizam açıq olduğunda təkrar səhvlər loglanmayacaqdır.
Tövsiyə edilir:

Kod:

ignore_repeated_source = Off

"display_startup_errors" (Təhlükəsizlik və Performans)
"display_errors" funksiyası "on" açıq olsa belə, PHP-nin iş əsnasında meydana gələn səhvlər görünməyəcəkdir. Bu funksiyanın "off" bağlı vəziyyətə gətirilməsi tövsiyə edilir.
Tövsiyə edilir:

Kod:

display_startup_errors = Off

"safe_mode_gid" (Təhlükəsizlik)
UID - GID idarələrini yalnız UID ilə etməsinə icazə verər. Beləcə eyni qrupda olan fayllar tapılsa belə görünə bilməzlər. Yəni serverdə tapılan digər müştərilərin scriptlərini və s. görmələrinə maneə törədir.
Tövsiyə edilir:

Kod:

safe_mode_gid = Off

"output_buffering = 4096" (Performans)
Tövsiyə edilir:

Kod:

output_buffering = 4096

"register_argc_argv" (Performans)
Bağlı olsa gərəksiz ARGV və ARGC qeydlərini önləyir. PHP nin ARGV və ARGC dəyişənlərini bildirib bildirməməsini izah edir.
Tövsiyə edilir:

Kod:

register_argc_argv = Off

"php_value session.use_trans_sid - php_value session.use_only_cookies"
Bu şəkildə nizamlanması URL-daki PHPSESSID məlumatlarının oxunmasını aradan qaldırır.
Tövsiyə edilir:

Kod:

php_value session.use_trans_sid = 0
php_value session.use_only_cookies = 1

"session.auto_start"
Session başlatmasını başlanğıcda istəmək
Tövsiyə edilir:

Kod:

session.auto_start = 0

"session.cookie_lifetime"
Cookienin zaman nizamı
Tövsiyə edilir:

Kod:

session.cookie_lifetime = 0

"memory_limit"
Scriptin istifadə etdiyi maksimum əməli yaddaş (RAM) miqdarı
Tövsiyə edilir:

Kod:

memory_limit = 8M

"post_max_size"
PHP-nin qəbul edə biləcəyi maksimum POST sorğu ölçüsü
Tövsiyə edilir:

Kod:

post_max_size = 256K

"upload_max_filesize"
Serverə upload (yüklənilən) faylların maksimum ölçüsü
Tövsiyə edilir:

Kod:

upload_max_filesize = 256K

"upload_tmp_dir"
Temporary qovluğuna HTTPdən gələn fayllar, nizamlanmazsa default qovluğu istifadə ediləcək.
Tövsiyə edilir:

Kod:

upload_tmp_dir = /var/www/foo.bar/sessions

Üstdə yazdığım kodları "php.ini" faylınıza alt alta əlavə edə bilərsiniz.

İndi isə keçək sql injeksiya və xss açıqlarına ən asand yolu htacces kontroludu public_html qovluğumuzda olan .htaccess faylımızı notepad-la açırıq və içərisinə aşağıda kodları əlavə edirik.
404.shtml əvəzinə yönləndiriləcəyi adresi yaza bilərsiniz
Kod:

RewriteEngine on
RewriteCond %{QUERY_STRING} ("|%22).*(>|%3E|<|%3C).* [NC]
RewriteRule ^(.*)$ 404.shtml [NC]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC]
RewriteRule ^(.*)$ 404.shtml [NC]
RewriteCond %{QUERY_STRING} (;|'|"|%22).*(union|insert|where|select|update|drop|md5|or|and|if).* [NC]
RewriteRule ^(.*)$ 404.shtml [NC]
RewriteRule (,|;|<|>|'|`) 404.shtml [NC]

 
Mətnİlk öncə saytınızdaki qovluqlara 755 fayllara 644 chmod verin
Əgər Server root adminisinizsə onda "/usr/local/Zend/etc/" , "/usr/local/lib/" də php.ini faylını açaraq redaktə edə bilərsiniz. Aşağıdakı yazılmış Funksiyaları yerinə yetirdikdən sonra apacheyə restart vermək lazımdır.

Əgər Server admini deyilsinizsə sadəcə serverdən saytınız varsa o zaman public_html daxil olaraq php.ini faylı yaradırın və içinə aşağıda göstərilmiş kodları əlavə (redaktə) edin.
Qeyd: Əgər php.ini faylının yaradılmasında və təhlükəsizlik qaydalarının qurulmasında çətinlik çəkirsinizsə onda php.ini faylını buradan yükləyib FTP-də "public_html" qovluğunun içinə bu faylı atmağınız kifayətdir. Biz artıq bu faylda lazım olan təhlükəsizliyi sizin əvəzinizə qurmuşuq.
Kimsə aşağıda göstərilən bütün əməliyyatı özü etmək istəyirsə onda aşağıda yazılanlara əməl etsin.

İndi keçək "php.ini" quraşdırılmasına:

"disable_functions" (Təhlükəsizlik)
"disable_functions" ilə serverinizdə bir çox funksiyaların işinə maneə törədə bilərsiniz. Bunun sayəsində saytınıza inject edilən scriptlərdən və atılımış shellər üçün təhlükəsizlik qurmuş olursunuz. Bu qədər funksiya çox görünə bilər amma yaxşı bir təhlükəsizlik üçün şərtdir.
Tövsiyə edilir:

Kod:

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

Əgər bu qədər funksiyanı bağlamaq istəmirsinizsə o zaman aşağıdaki kimi yazmaq təhlükəsizliyiniz üçün kifayətdir.

Kod:

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

Qeyd: "allow_url_fopen" funksiyasını əgər bağlasanız bu zaman saytınızdan php sonluğu ilə bitən fayllara sorğu etmək olmayacaq. Mələsən: http://big.az/chat/parlaq.php tipli sorğu faylları işləməyəcək. Kimə php sonluqlu fayllara sorğu zamanı skriptin çalışması lazımdırsa bu kodu yuxarıdakı bağlanılan funksiyalar siyahısından çıxartsın.

"safe_mode" (Təhlükəsizlik)
"Safe Mode" adındanda göründüyü kimi "Qorunma Rejimi" deməkdir. "Safe mode" əksər serverlərdə bağlı (off) olduğuna görə serverde istənilən sayta keçid almaq mümkündür. Ona görə Safe mode "on" edirik bu zaman exploitlərin çalışması və əmrlərin execute edilmələrinin qarşısı alınacaq. Bəzi Scriptlər safe_mode = on olanda tam işləmədiyindən server adminləri safe mode yandırmırlar ama bununda çarəsi var. Bunun üçün Serverdə safe mode yandırırıq və hansı sayta safe_mode = off lazımdırsa həmin saytda php.ini faylında safe_mode = off edirik. Bununlada yalnız həmin saytda safe mode söndürürük.

Tövsiyə edilir:

Kod:

safe_mode = on

Yuxarıda yazılanların hamısını etsəniz serverdə shell funksiyaları işləməyəcək.

"register_globals" (Təhlükəsizlik və Performans)
php.ini faylında olan "post" "get" ilə göndərilən sorğulara istifadəçi adlarıyla sorğu edilə bilinib və ya bilinməyəcəyini ifadə edir. Session, cookie funksiyalarını öz adıyla təyin edərək bir dəyişən olmasına səbəb olur. "Off" olaraq nizamlansa bu kimi funksiyalara özünün təyin etdiyi şəkildə istifadə oluna bilinməsinin qarşısı alınır.
Tövsiyə edilir:

Kod:

register_globals = off

Qeyd: Əgər get və post sorğusundan istifadə edirsinizsə bu funksiyanı bağlı saxlamayın.

"allow_url_fopen" (Təhlükəsizlik)
"allow_url_fopen" susmaya görə "açıq" şəklində gəlir və bunun "on" açıq olması "file_get_contents()", "include()", "require()" funksiyaları vasitəsi ilə digər faylların da işləməsinə imkan yaradır. Bu funksiya ilə verilən məlumatlar heç bir nəzarətdən keçirilməzsə kritik təhlükəsizlik açıqlarına səbəb ola bilər.
Tövsiyə edilir:

Kod:

allow_url_fopen = off

Qeyd: "allow_url_fopen" funksiyasını əgər bağlasanız bu zaman saytınızdan php sonluğu ilə bitən fayllara sorğu etmək olmayacaq. Mələsən: http://big.az/chat/parlaq.php tipli sorğu faylları işləməyəcək. Kimə php sonluqlu fayllara sorğu zamanı skriptin çalışması lazımdırsa allow_url_fopen = on olaraq saxlasın.

"allow_url_include" (Təhlükəsizlik)
Bu dəyişən bağlı edildiyində "require" və "include" ilə uzaqdan digər bir fayl çağırılmasa maneə törətmiş olacaqsınız. Bunun sayəsində də böyük bir təhlükədən xilas olmuş olursunuz.
Tövsiyə edilir:

Kod:

allow_url_include = off

"display_errors" (Təhlükəsizlik)
Bu funksiya saytınızın işində meydana gələcək səhvləri əks etdirib əks etdirməyəcəyini təyin edir. Yəni saytınız üçün deyək bir forum və ya portal istifadə edirsiniz . Və Bunların çalışması əsnasında "Fatal error: Call to undefined function get_header() en /home/vhosts/site.com/index.php on line 37" şəklində səhv görünür. Bu səhvlərin görünməsini bağlamaq üçün bu funksiyanı bağlı vəziyyətdə saxlamaq lazımdır. Çünki bu funksiya pis niyyətli kəslərin saytınızın serverdə olan tam yolunu göstərmiş olur.
Tövsiyə edilir:

Kod:

display_errors = Off

"cgi.force_redirect" (Təhlükəsizlik)
Bu funksiya normalda "on" olaraq gəlir və Windows serverlərində IIS, OmniHTTPD kimi yerlərdə funksiyanın bağlanılması lazımdır. Öz serverinizdə bu funksiya yoxdursa dəyişdirməyinizə ehtiyac yoxdur.
Tövsiyə edilir:

Kod:

cgi.force_redirect = on

"magic_quotes_gpc" (Təhlükəsizlik və Performans)
Magic Quotes əməliyyatı GET/POST üsuluyla gələn Cookie verilənini avtomatik olaraq PHP scriptə qaçırır.
Tövsiyə edilir:

Kod:

magic_quotes_gpc = on

"magic_quotes_runtime" (Təhlükəsizlik və Performans)
Magic quotes iş müddətində dəyişən meydana gətirir, SQLdən exec()dən, vs.
Tövsiyə edilir:

Kod:

magic_quotes_runtime = on

"magic_quotes_sybase" (Təhlükəsizlik və Performans)
Sybase-style magic quotes istifadə edir (Bunun yerinə ' ' bununla '' qaçırır)
Tövsiyə edilir:

Kod:

magic_quotes_sybase = on

"session.use_trans_sid" (Təhlükəsizlik)
Bu nizamı diqqətli nizamlayın, istifadəçi E-mailə aktiv ID-si olan URL göndərə bilər
Tövsiyə edilir:

Kod:

session.use_trans.sid = off

"open_basedir" (Təhlükəsizlik)
Burada ifadə edilən bir silsilə xaricindəki faylları və ya qovluqları görmək qeyri-mümkündür. Yəni /home/username/public_html/qovluqlar/ saytınızda yalnız faylların görüntülənməsini istəyirsinizsə belə edilir. Həm faylların həm də şəkillərin olduğu yerin görünməsi üçün aşağıdakından istifadə olunur /home/vhosts/site.com/public_html/resimler:
/home/username/public_html/fayllar/ bundan kənar yerlərin görünməsi mümkün deyil.
Tövsiyə edilir:

Kod:

open_basedir = "/home/username/public_html/resimler:
/home/username/public_html/fayllar/"

"asp_tags" (Təhlükəsizlik)
ASP Style < % % > teqlərinə icazə verilib verilməyəcəyi təyin edir.
Tövsiyə edilir:

Kod:

asp_tags=Off

"session.hash_function" (Təhlükəsizlik)
Hash Funksiyası
0: MD5 (128 bits)
1: SHA-1 (160 bits)
Tövsiyə edilir:

Kod:

session.hash_function=0

"session.hash_bits_per_character" (Təhlükəsizlik)
Hash çevirərkən hər xarakterdə neçə bit saxlansın
4 bits: 0-9, a-f
5 bits: 0-9, a-v
6 bits: 0-9, a-z, A-Z, "-", ","
Tövsiyə edilir:

Kod:

session.hash_bits_per_character = 5

"expose_php" (Təhlükəsizlik)
"expose_php" açıqdırsa bağlı edilməsi tövsiyə edilir. Əks halda PHP ilə etdiyiniz hər şeydə server tərəfindən PHP distributivi kimi məlumatlar göstəriləcək. Hackerlər hətta Lamerlər bu məlumatları sevərlər. Bunlara maneə törətmək üçün "off" seçimini seçin.
Tövsiyə edilir:

Kod:

expose_php = Off

"html_errors" (Təhlükəsizlik)
Bu funksiyanın açıq olması vəziyyətində səhv mesajları çıxacaq.
Tövsiyə edilir:

Kod:

html_errors = Off

"max_execution_time" (Təhlükəsizlik)
Bu funksiya Scriptin icra olunmasına təyin olunmuş müddəti göstərir. Məsələn istifadəçi bir linkə basdı və bu linkin açılması üçün təyin olunan saniyədən çox zaman keçərsə səhifə saytınızın serverdə olduğu tam yolu göstərərək səhv verə bilər. Bu səhvlərin görünməsi təhlükəsizlik baxımından təhlükəlidir. 300 saniyə yazılan yerdə istədiyiniz zamanı təyin edə bilərsiniz.
Tövsiyə edilir:

Kod:

max_execution_time = 300

"max_input_time" (Təhlükəsizlik)
Scriptin təyin edilən sorğunu icra etməsi üçün keçən maksimum zamanı göstərir.
Tövsiyə edilir:

Kod:

max_input_time = 300

"ServerSignature" (Təhlükəsizlik və Performans)
"ServerSignature" saytınızda tapılmayan bir faylın baxılması vəziyyətində bu səhifənin altında serverlə əlaqədar bir məlumat alır və bu da performansı azaldır. Bununlada pis niyyətli kəslər serverlə əlaqədar məlumatı öyrənmiş olarlar.
Tövsiyə edilir:

Kod:

ServerSignature = Off

"UseCanonicalName" (Performans)
Bu nizamın açıq olması Apache self-referencing URL meydana gətirdiyində Server adı və portdan ibarət yaranan bir ad istifadə edir.
Tövsiyə edilir:

Kod:

UseCanonicalName = Off

"HostnameLookups" (Performans)
"HostnameLookups" açıq olması performansın düşməsinə səbəb olur. IP ünvanı DNS serverindən baxılaraq öyrənilə bilər buda performansı aşağı salır.
Tövsiyə edilir:

Kod:

HostnameLookups = Off

"ExtendedStatus" (Performans)
Serverin vəziyyətini öyrənmək üçün server-status istifadə edilirsə Apache hər an bu prosessorun çağrıla biləcəyini gözlədiyi üçün hazır gözləyir və hər an sistem saatını öyrənməsi lazım olur bu da performansı aşağı salır.
Tövsiyə edilir:

Kod:

ExtendedStatus = Off

"register_long_arrays" (Təhlükəsizlik və Performans)
Bu funksiyanın "on" açıq olması vəziyyətində sisteminizdə hər script işləməyəcək install və s. etməkdə səhvlərlə qarşılaşa bilərsiniz amma yaxşı bir təhlükəsizlik və performans üçün "off" vəziyyətində saxlanılması gərəkdir.
Tövsiyə edilir:

Kod:

register_long_arrays = Off

"allow_call_time_pass_reference" (Performans)
Funksiyaların çağrılması zamanı yaranan uyğunsuzluqlarla əlaqədar xəbərdarlıq verir.
Tövsiyə edilir:

Kod:

allow_call_time_pass_reference = Off

"enable_dl" (Təhlükəsizlik)
Bu funksiyanın "off" bağlı olması lazımdır. Əks halda pis niyyətli insanların sistemin php modullarında iş görməsinə imkan yaradır və sistemdə rahat gəzmələrini təmin edir. Təhlükəsizlik üçün bağlı olması lazımdır.
Tövsiyə edilir:

Kod:

enable_dll = Off

"track_errors" (Təhlükəsizlik və Performans)
Sürücülərdə meydana gələn səhvlərdə səlahiyyət verildiyi təqdirdə səhv mesajı errormsg olaraq dəyişəndə göstərilir.
Tövsiyə edilir:

Kod:

track_errors = Off

"file_uploads" (Təhlükəsizlik)
Açıq olarsa serverdə fayl yüklənməsinə icazə verilmiş olacaq və bu da ciddi bir təhlükəsizlik açığına səbəb olur. Əgər istifadə etdiyiniz scriptdə hər hansı bir fayl yüklənilməsindən istifadə etmirsinizə bu funksiyanı mütləq bağlı vəziyyətə gətirin. Bunun sayəsində saytınızı böyük bir təhlükədən shell, script inject və s. zərərli yükləmələrdən qoruya bilərsiniz.
Tövsiyə edilir:

Kod:

file_uploads = Off

"ignore_repeated_errors" (Təhlükəsizlik və Performans)
Açıq olsa təkrarlanan səhvləri loglamaz.
Tövsiyə edilir:

Kod:

ignore_repeated_errors = Off

"ignore_repeated_source" (Təhlükəsizlik və Performans)
Bu nizam açıq olduğunda təkrar səhvlər loglanmayacaqdır.
Tövsiyə edilir:

Kod:

ignore_repeated_source = Off

"display_startup_errors" (Təhlükəsizlik və Performans)
"display_errors" funksiyası "on" açıq olsa belə, PHP-nin iş əsnasında meydana gələn səhvlər görünməyəcəkdir. Bu funksiyanın "off" bağlı vəziyyətə gətirilməsi tövsiyə edilir.
Tövsiyə edilir:

Kod:

display_startup_errors = Off

"safe_mode_gid" (Təhlükəsizlik)
UID - GID idarələrini yalnız UID ilə etməsinə icazə verər. Beləcə eyni qrupda olan fayllar tapılsa belə görünə bilməzlər. Yəni serverdə tapılan digər müştərilərin scriptlərini və s. görmələrinə maneə törədir.
Tövsiyə edilir:

Kod:

safe_mode_gid = Off

"output_buffering = 4096" (Performans)
Tövsiyə edilir:

Kod:

output_buffering = 4096

"register_argc_argv" (Performans)
Bağlı olsa gərəksiz ARGV və ARGC qeydlərini önləyir. PHP nin ARGV və ARGC dəyişənlərini bildirib bildirməməsini izah edir.
Tövsiyə edilir:

Kod:

register_argc_argv = Off

"php_value session.use_trans_sid - php_value session.use_only_cookies"
Bu şəkildə nizamlanması URL-daki PHPSESSID məlumatlarının oxunmasını aradan qaldırır.
Tövsiyə edilir:

Kod:

php_value session.use_trans_sid = 0
php_value session.use_only_cookies = 1

"session.auto_start"
Session başlatmasını başlanğıcda istəmək
Tövsiyə edilir:

Kod:

session.auto_start = 0

"session.cookie_lifetime"
Cookienin zaman nizamı
Tövsiyə edilir:

Kod:

session.cookie_lifetime = 0

"memory_limit"
Scriptin istifadə etdiyi maksimum əməli yaddaş (RAM) miqdarı
Tövsiyə edilir:

Kod:

memory_limit = 8M

"post_max_size"
PHP-nin qəbul edə biləcəyi maksimum POST sorğu ölçüsü
Tövsiyə edilir:

Kod:

post_max_size = 256K

"upload_max_filesize"
Serverə upload (yüklənilən) faylların maksimum ölçüsü
Tövsiyə edilir:

Kod:

upload_max_filesize = 256K

"upload_tmp_dir"
Temporary qovluğuna HTTPdən gələn fayllar, nizamlanmazsa default qovluğu istifadə ediləcək.
Tövsiyə edilir:

Kod:

upload_tmp_dir = /var/www/foo.bar/sessions

Üstdə yazdığım kodları "php.ini" faylınıza alt alta əlavə edə bilərsiniz.

İndi isə keçək sql injeksiya və xss açıqlarına ən asand yolu htacces kontroludu public_html qovluğumuzda olan .htaccess faylımızı notepad-la açırıq və içərisinə aşağıda kodları əlavə edirik.
404.shtml əvəzinə yönləndiriləcəyi adresi yaza bilərsiniz
Kod:

RewriteEngine on
RewriteCond %{QUERY_STRING} ("|%22).*(>|%3E|<|%3C).* [NC]
RewriteRule ^(.*)$ 404.shtml [NC]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC]
RewriteRule ^(.*)$ 404.shtml [NC]
RewriteCond %{QUERY_STRING} (;|'|"|%22).*(union|insert|where|select|update|drop|md5|or|and|if).* [NC]
RewriteRule ^(.*)$ 404.shtml [NC]
RewriteRule (,|;|<|>|'|`) 404.shtml [NC]


Müəllifi: - Administrator
Yazılma tarixi - 2009-Noyabr-11 saat 18:41
wry_yikda Tarix: Şənbə, 2010-Yanvar-02, 23:16 | Sıra nömrəsi: 2

Yazıları: 83
Şərhlər üzrə aktivliyinə görə
38
Salam.Belke bash agritmaq uchun proqramin olar?!?!? biggrin biggrin

Ac Ol kIsI Ol
Söhbət sosiskada deyil, adam gerek vnimatelni olsun
 
MətnSalam.Belke bash agritmaq uchun proqramin olar?!?!? biggrin biggrin

Müəllifi: - wry_yikda
Yazılma tarixi - 2010-Yanvar-02 saat 23:16
...:::BAAU Forum:::... » ..:::Ordan Burdan:::.. » İnternet-bir virtual dünya! » Xaker. (Serverinizi (saytınızı) hacklanmadan qorumaq!)
  • Page 1 of 1
  • 1
Search:
Yüklənir...