Ana içeriğe atla

PHP veb təhlükəsizliyi

 




 PHP veb təhlükəsizliyi

 

Zəifliklər və anlayışlar

Zəiflik Tipləri:

Cross Site Scripting (XSS)

Bu zəiflik veb-səhifələrə yeridilən olmaq üçün məlumata imkan verir. Bu məlumat kod kimi təfsir edilir və effektiv qurbanın brauzerini uzaq idarə etmək kimi görülə bilən tamaşaçının veb-brauzeri ilə yerinə yetirilir.

Cross Site Request Forgery (CSRF)

CSRF qurbanın brauzerinin zəif veb tətbiqinin daxilində əslini təsdiq edilən hərəkəti çağırmağa aldatdığı əməllərin tipinə müraciət edir. Hədəf vebsaytına XSS-ə tez həssas olmaqdan asılı olmayaraq CSRF ilə təsir göstərilə bilər. Təhlükəli necə CSRF bu yolu çağırılan hərəkət növündən və onun təsirindən həqiqətən asılı oluna bilər.

SQL Injection

SQL inyeksiyası hücumları SQL sorğuların manipulyasiyasına gətirir. Əgər müvəffəqiyyətlə istismar etdilərsə , hücum edən verilənlər bazasında bütün məlumata girişi əldə edə bilər.

Insecure Session Handling

Bu kateqoriya sessiya ardıcıl idarə etmək üçün və ya nəzarətə almaq üçün giriş əldə etməyi və ya təsir göstərməyi sessiya simvoluna hücum edənlərə imkan verən problemləri əhatə edir.

Session Fixation

Sessiya qeyd etməsi istifadəçinin sessiyasını idarə etmək üçün hücum edənə imkan verir. Bu həqiqi sessiya simvolu kimi istifadə edilən olmaq üçün məlum simvolu yeritmək ilə edilir.

Information Disclosure

Necə ki ad təklif edir, təhlükəsizlik əlaqəsi oldu ki, informasiya hücum sadələşdirən bilər sistem nəzərdə tutulmuş müddətdə elan edilir. Belə informasiya müxtəlif yerlərdə tapıla bilər, məsələn kod şərhləri, kataloq siyahıları , səhv məlumatları və ya hətta sizin sevimli axtarış sisteminizin axtarış nəticələrində.

Header Injection

Bu zəiflik HTTP cavabına HTTP başlıqlar yeridmək imkanı verir.

File Inclusion

Lokal və ya uzaq faylların daxil edilməsi veb tətbiqinə serverdə əsassız kod icrasına gətirə biləcəy ciddi təhlükəsizlik zəifliyidir.

Insecure Configuration

Serverin və ya tətbiqi proqram təminatının təhlükəli quruluşu hücumları sadələşdirə bilər.

Weak randomness

Bu problem əvvəlcədən proqnazlaşdırıla bilən təsadüfi say nəslinə müraciət edir; məsələn pis seçilən təsadüfi toxumlar və ya kafi olmayan entropiyadan istifadə edən alqoritmlər zəif təsadüfi saylar əmələ gətirmək üçün tanınırlar.

 

Anlayışlar

Secure Input Handling

Giriş filtrlərindən və validator-dan şəbəkə tətbiqlərində arzuedilməz əks effektləri çağırmaq üçün tanınan müəyyən nümunələr üçün istifadəçi girişini gözdən keçirmək üçün istifadə edilə bilər. İstifadəçi girişi JavaScript-in fraqmentlərini özündə saxlaya bilər, əgər yoxlanılmırsa, onda şəbəkə tətbiqinin konteksti çərçivəsində SQL, PHP və ya başqa kod icrasına gətirə bilər.

Sanitising

Yoxlama funksiyalar istifadəçi giriş məlumatını "bərpa etmək" üçün istifadə edilə bilər, tamamilə potensial olaraq təhlükəli giriş məlumatı rədd etməyin əvəzinə tətbiqin məhdudiyyətlərinə (məsələn müəyyən datatypes, maksimal uzunluq) müvafiq olaraq.

Escaping

Xəlbirləmənin bir neçə müxtəlif növü var:

  1. Solameylli xətt ön şəkilçisi "\" cərgələr çərçivəsində meta işarəsini müəyyən edir. Məsələn: \t tabulyasiya işarəsidir, \n yeni-sətr işarəsidir... Bu yeni-sətr işarəsi xüsusi məqsədə malik olduğu funksiyalar üçün xüsusi maraqlı ola bilər, məsələn header(). Müntəzəm ifadələr çərçivəsində, solameylli xəttdən xüsusi işarələri xəlbirləmək üçün istifadə edilir, \, və ya \* kimi. rəftar edən müntəzəm ifadələr üçün bütün funksiyalar münasibdi.
  2. HTML kodlaşdırması HTML kimi onların kodlaşdırılan ekvivalentlərinə veb-brauzer ilə normal olaraq təfsir edilən işarələri tərcümə edir, məsələn < &lt-dir; və ya &#x003C; və ya &#60; və > &gt-dir; və ya &#x003E; və ya &#62;. HTML kodlaşdırması davranmaq çıxış üçün istifadə edilməlidir, harada ki istifadəçi girişi kodu yeritməksiz HTMLdə əks etdirilməlidir. (htmlentities()-ə baxın)
  3. URL kodlaşdırması əminlik verir ki, hər işarə uyğun şəkildə RFC 1738-ə müvafiq olaraq URL-lar çərçivəsində kodlaşdırdırılır. Məsələn boş yer işarəsini %20 və < - %3C çevirir. Bu xəlbir URL-lar üçün funksiyalara münasibdir, urlencode() və urldecode() kimi.

White-/Blacklisting

Giriş məlumatını filtrləməyə iki müxtəlif yanaşma var, ağ və qara siyahıda yerləşdirmək. Yoxlamaları qara siyahıda yerləşdirmək "pis nümunələrin" siyahısına qarşı məlumatı daxil etmək olar. Bu yol, arzuedilməz giriş məlumatları imtina edilə bilər və bütün başqa məzmun daha sonra emal edilə bilər. Digər tərəfdən, whitelisting yoxlamaları tanınan "yaxşı nümunələrin" siyahısına qarşı məlumatı daxil etmək olar. Bütün tayı-bərabəri olmayan giriş məlumatı imtina edilə bilər və tək giriş məlumatı tanıdı, necə ki həqiqi qəbul edilə bilər.

 

Təhlükəsizliklə əlaqələndirilən PHP funksiyaları

Təsdiq etmə və yoxlama funksiyaları

PHP-nüvə funksiyaları

  • is_numeric() - Dəyişənlərin rəqəm məzmunlu olduğunu yoxlayır.
  • is_array() - Dəyişənlərin silsilə olduğunu yoxlayır.
  • strlen() - sətrin uzunluğunu qaytarır.
  • strip_tags() - HTML və PHP əlamətlərini (teqlərini) silir.

CType genişlənməsi

Adətən CType genişlənməsi PHP-də aktivdir.

  • ctype_alnum() - yalnəz əlifba-rəqəm işarələr - A-Z, a-z, 0-9.
  • ctype_alpha() - yalnız əlifba işarələr - A-Z, a-z.
  • ctype_cntrl() - yalnız idarəetmə işarələri - tabulyasiya, yeni sətir.
  • ctype_digit() - yalnız rəqəm işarələri - 0-9.
  • ctype_graph() - yalnız görünən işarələr.
  • ctype_lower() - yalnız kiçik hərflər - a-z.
  • ctype_print() - yalnız çap olunan işarələr.
  • ctype_punct() - yalnız punktuasiya və çap işarələri, rəqəmlər, hərflər və ya boş yer işarəsindən başqa. Məsələn: .!?:;*&$
  • ctype_space() - yalnız boş yer işarələri. Məsələn: tabulyasiya, yeni sətir.
  • ctype_upper() - yalnız baş hərflər - A-Z.
  • ctype_xdigit() - yalnız onaltılıq rəqəmlər işarələri - 0-9, a-f, A-F.
<?php
if (!ctype_print($_GET['var'])) {
    die("User input contains ". "non-printable characters");
}
?>

Filter genişlənməsi - ext/filter

PHP 5.2.0 virsiyadan başlayaraq, filtr genişlənməsi giriş məlumatın təsdiq və filtrə edilməsi üçün sadə APİ ilə təmin edilmişdir.

  • filter_input() - GET, POST, COOKIE, ENV və SERVER qlobal dəyişənləri n məlumatlarını tədbiq olunmuş filtrdən keçirir.

    <?php
    $url = filter_input(INPUT_GET, 'url', FILTER_URL);
    ?>

     
  • filter_var() - Filtr dəyişənləri.

    <?php
    $url = filter_var($var, FILTER_URL);
    ?>

     

Filtrlər siyağısı

Təsdiqləmə filtrləri

  • FILTER_VALIDATE_INT - tam ədəd ədədi dəyərində giriş məlumatın təsdiqlənməsi.
  • FILTER_VALIDATE_BOOLEAN - əgər giriş məlumat bul dəyərdir.
  • FILTER_VALIDATE_FLOAT - əgər giriş məlumat üzən vergül sayıdır.
  • FILTER_VALIDATE_REGEXP - giriş məlumatın müntəzəm ifadəyə təsdiqlənməsi.
  • FILTER_VALIDATE_URL - əgər giriş məlumat URL-dur.
  • FILTER_VALIDATE_EMAIL - əgər giriş məlumat həqiqi elektron poçt ünvanıdır.
  • FILTER_VALIDATE_IP - əgər giriş məlumat həqiqi İPv4 və ya İPv6 ünvanıdır.

Bu blogdaki popüler yayınlar

Zərərli Proqram Təminatları (Malware-lər)

  Zərərli Proqram Təminatları   ( Mal icious Soft ware s/ Malware) Viruslar Öz-özünü kopyalaya bilən və yayılaraq sistemi dəyişdirə bilər proqram təminatlarıdır. Yəni hər malware virus deyil. Başladılmağa ehtiyacları var ; Bu başlatmaq o demək deyil ki, yalnız qurban tərəfindən olsun, hansısa proqram təminatı tərəfindəndə ola bilər. Başladılana qədər səssiz gözləyirlər. Virus növü Funksiyası Boot                            Əməliyyat sisteminin açılışında işləyərək özünü yükləyir. Web Scripting Veb saytları və brauzerindəki boşluqları istismar edir. Hijacker                                   Veb brauzer funksiyalarının ələ keçirərək fərqli səhifələrə yönləndirir. Resident RAM-a yerləşərək qalıcılıq təşkil edir. Polymorphic Antivirustan qaçmaq üçün kodunu hər açılışda yeniləyir. Makro (VBA) Öz kodunu fayllara əla

Linux Dərsləri 1

 LİNUX DƏRSLƏRİ 1 Linux nədir?  Əvvəlcədən bunu bilin ki, Linux tək başına  əməliyyat sistemi deyildir. Linux kerneldir.  Bütün sistemin idarəsindən məsuldur. Programlar ilə avadanlıq arasında əlaqəni təmin edər. Fayl sistemləri, istifadəçilər, programlar, drayverlər və s. hamsı kernel tərəfindən idarə edilir. UNİX nədir? Bu bölmədə biz sizə Linux haqqında ümumi anlayış verməklə, Linux-un mənşəyini çox tarixi və ya qeyri-texniki şəkildə əhatə edəcəyik. O vaxt Bell Labs-da hazırlanmış UNIX adlı əməliyyat sistemi var idi. Bu sistem öz alətləri sayəsində müxtəlif universitetlərdə və digər ehtiyac duyulan qurumlarda istifadə olunurdu. İndiyə qədər hər şey yaxşı idi, lakin Unix lisenziya haqqı (yəni pullu idi) tələb edirdi və bu, əlbəttə ki, sistemdən istifadə edə biləcək insanların sayını xeyli azaldırdı. Yəni insanların ehtiyacı olsa belə, lisenziya pulu olduğundan bu sistemdən istifadə edə bilmirdilər. Nəticədə “pul verməkdənsə, öz əməliyyat sistemimi yazaram” deyə düşünənlər oldu və bu,

Google Dork nədir? Google dork nümunələri

  Google Dork nədir? Google dorks, Google-da daha sürətli və daha effektiv axtarış etmək üçündür. Tutaq ki, bizə yalnız FaceBook-da Azerbaycan sözü keçən nəticələr çıxmasını istəyirik. Bu zaman Google dorklarından istifadə edərək rahatlıqla tapa bilərik. 1) intittle:  Bu dork sayəsində  başlığı ilə yazdığımız sözün eynisi olan saytları qarşımıza çıxarır. Məsələn:   intittle:məktəb 2)   intext: Bu dork sayəsində yazdığımız sözü mətndə axtarır və mətnində yazdığımız sözün eynisi olan saytlar (linklər) qarşımıza çıxır Məsələn: intext:Shirnov039 3) inurl: Bu  dork sayəsində linkdə yaxud link uzantısında yazdığımız sözün eynisi olan linkləri qarşımıza çıxarır. Məsələn: inurl:tedris.html 4) ext: Bu dork sayəsində faylın uzantısını göstərə bilərik.  Məsələn: inurl:login ext:log 5) site: Bu dork sayəsində istədiyimiz ölkə domain-ə uyğun saytları çıxarda bilərik. Yəni ancaq .az (Azərbaycan) saytları yaxud ancaq .am (ermənistan) saytları. Məsələn: inurl:login site:am