Projeya Snuffleupagus ji bo astengkirina qelsiyan modulek PHP-ê pêş dixe

Di nav sînorên projeyê de snuffleupagus pêşdikeve modulek ji bo girêdana bi wergêrê PHP7 re, ku ji bo baştirkirina ewlehiya jîngehê û astengkirina xeletiyên hevpar ên ku di xebitandina sepanên PHP-ê de dibin sedema qelsiyan hatî çêkirin, hatî çêkirin. Modul di heman demê de dihêle hûn paçên virtual biafirînin da ku pirsgirêkên taybetî rast bikin bêyî guheztina koda çavkaniyê ya serîlêdana xedar, ku ji bo karanîna di pergalên mêvandariya girseyî de hêsan e ku ne gengaz e ku hemî serîlêdanên bikarhêner nûve bikin. Modul bi C-yê hatî nivîsandin, di forma pirtûkxaneyek hevbeş de ("extension=snuffleupagus.so" di php.ini de) ve girêdayî ye û belav kirin ji hêla lîsansa di bin LGPL 3.0.

Snuffleupagus pergalek qaîdeyan peyda dike ku dihêle hûn şablonên standard bikar bînin da ku ewlehiyê baştir bikin, an qaîdeyên xwe biafirînin da ku daneyên têketinê û parametreyên fonksiyonê kontrol bikin. Mînakî, qaîdeya "sp.disable_function.function("pergal").param("ferman").value_r("[$|;&`\\n]").drop();" destûrê dide te ku hûn di argumanên fonksiyonê de karanîna tîpên taybetî bêyî guheztina serîlêdanê sînordar bikin. Bi heman awayî, hûn dikarin biafirînin paçên virtual ji bo astengkirina qelsiyên naskirî.

Li gorî ceribandinên ku ji hêla pêşdebiran ve têne darizandin, Snuffleupagus bi zor performansê kêm dike. Ji bo ku ewlehiya xwe misoger bike (xewaziyên gengaz ên di qata ewlehiyê de dikarin wekî vektorek zêde ji bo êrîşan re xizmet bikin), proje ceribandina bêkêmasî ya her commit di dabeşên cihêreng de bikar tîne, pergalên analîzkirina statîk bikar tîne, û kod ji bo hêsankirina lênêrînê tê formatkirin û belgekirin.

Rêbazên çêkirî têne peyda kirin da ku çînên qelsbûnê yên wekî pirsgirêkan asteng bikin, girêdayî bi serialîzasyona daneyan, ne ewledar bikaranîna fonksiyona PHP mail(), rijandina naveroka Cookie-yê di dema êrişên XSS de, pirsgirêkên ji ber barkirina pelan bi koda îcrakar (mînak, di forma phar), kalîteya belengaz nifşê hejmarên rasthatî û cîgir avakirina XML çewt.

Modên jêrîn têne piştgirî kirin ku ewlehiya PHP-ê zêde bikin:

  • Ji bo Cookies alayên "ewle" û "heman site" (parastina CSRF) bixweber çalak bike, şîfre kirin Cookie;
  • Komek qaîdeyên çêkirî ji bo naskirina şopên êrîşan û lihevkirina sepanan;
  • Bi zorê aktîvkirina gerdûnî ya "zexma" (mînak, dema ku li hêviya nirxek yekjimar wekî argumanek be, hewldanek ji bo diyarkirina rêzek asteng dike) û parastina li dijî manîpulasyonê type;
  • Astengkirina standard pêçanên protokolê (mînak, qedexekirina "phar: //") bi navnîşa spî ya wan a eşkere;
  • Qedexekirina pêkanîna pelên ku têne nivîsandin;
  • Lîsteyên reş û spî ji bo eval;
  • Pêdivî ye ku dema ku bikar bînin kontrolkirina sertîfîkaya TLS-ê çalak bikin
    curl;

  • Zêdekirina HMAC li tiştên serialîzekirî da ku bicîh bikin ku deserialîzasyon daneyên ku ji hêla serîlêdana orjînal ve hatine hilanîn vedigire;
  • Daxwaza moda têketinê;
  • Astengkirina barkirina pelên derveyî li libxml bi girêdanên di belgeyên XML de;
  • Qabiliyeta girêdana hilgirên derveyî (upload_validation) ji bo kontrolkirin û şopandina pelên barkirî;

Proje ji bo parastina bikarhêneran di binesaziya yek ji operatorên mezin ên mêvandariya fransî de hate afirandin û bikar anîn. Tê destnîşan kirinku bi tenê girêdana Snuffleupagus dê li hember gelek qelsiyên xeternak ên ku îsal li Drupal, WordPress û phpBB hatine nas kirin biparêze. Zelaliyên li Magento û Horde dikarin bi çalakkirina modê werin asteng kirin
"sp.readonly_exec.enable()".

Source: opennet.ru

Add a comment