Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

Code review tas-sigurtà għal proġetti PHP

Kif it-timijiet jeżaminaw il-kodiċi PHP proprju b'mod mirat għal vulnerabbiltajiet: tipi ta' reviews, funzjonijiet kritiċi, għodod sensati u checklist.

Stat 5 min. qariŻvilupp sigur

Fil-qosor: Code review tas-sigurtà għal PHP huwa l-qari mmirat tal-kodiċi sors b'mistoqsija waħda: Fejn jistgħu inputs barranin jagħmlu xi ħaġa li m'għandhomx permess jagħmlu? Żewġ forom wrew li jaħdmu, review ta' kull bidla u review bażiku tal-proġett kollu, sostnuti minn analiżi statika b'PHPStan jew Psalm. Vulnerabbiltajiet fl-interpretatur ta' PHP bħal PHP2Shell review ma jsibhomx, imma jsib l-ħafna żbalji li jinħolqu fil-kodiċi proprju.

Għaliex issa nħarsu lejn il-kodiċi proprju?

PHP2Shell fl-aħħar ġimgħa ta' Ottubru 2026 okkupa l-aktar l-admins. Patchjar, restart, prova: ix-xogħol kien fuq is-server. Għat-timijiet tal-iżvilupp tibqa' wara mistoqsija skomda. Jekk attakkant jista' jesegwixxi kodiċi permezz ta' vulnerabbiltà oħra, x'jsib fl-applikazzjoni tagħna? U kemm minn dawn il-vulnerabbiltajiet kiteb hu stess?

L-OWASP Top 10 juru għal snin li l-biċċa l-kbira tad-dgħufijiet f'applikazzjonijiet tal-web mhumiex eżotiċi. Kontroll tal-aċċess nieqes, injection u konfigurazzjoni mhux sigura huma fuq nett. Dawn huma żbalji li ħarsa mħarrġa tara fil-kodiċi sors, ħafna qabel ma attakkant jipprovahom.

Ta' dan jiżdied raġuni prattika. Ħafna kumpaniji bħalissa xorta waħda qed jivverifikaw, jippatchjaw u jsaħħu s-servers tagħhom. Min iħares lejn l-applikazzjoni proprja fl-istess ħin, jagħlaq il-lakuna bejn l-operat u l-iżvilupp. Server imsaħħaħ b'applikazzjoni vulnerabbli jibqa' attakkabbli, u applikazzjoni miktuba sewwa fuq PHP mhux ippatchjat l-istess.

Review bażiku jew review tal-bidliet?

Il-OWASP Cheat Sheet dwar is-Secure Code Review jiddistingwi żewġ tipi li fil-prattika jikkumplimentaw lil xulxin:

Tip Meta Ambitu Għan
Review bażiku (Baseline) proġett ġdid, release kbir, wara inċident proġett kollu, imwieżen skont ir-riskju tirreġistra l-istokk ta' vulnerabbiltajiet
Review tal-bidliet (Diff) kull pull request biss kodiċi mibdul tevita żbalji ġodda

Review bażiku wara inċident huwa partikolarment prezzjuż. Min għadu kemm naddaf server għandu jaf jekk l-applikazzjoni toffrix swali oħra ta' dħul. Ir-review tal-bidliet iżomm l-istat nadif wara, għax kull bidla qabel tingħaqad jinqara wkoll mil-lat tas-sigurtà.

Code review f'PHP: fejn jinġabru l-iżbalji tas-sigurtà

Fi proġetti PHP jixraq li titfgħu ħarsa mmirata lejn ċerti funzjonijiet u mudelli. Mhumiex projbiti, imma kull post misjub jistħoqqlu l-mistoqsija jekk data barranija tistax tidħol fih.

Mudell fil-kodiċi Riskju possibbli Tkomplija
SQL b'konkatenazzjoni ta' strings b'varjabbli SQL injection Evita SQL Injection f'PHP
unserialize() fuq data minn barra Injection ta' oġġetti Deserjalizzazzjoni mhux sigura f'PHP
include jew require b'mogħdija varjabbli Inklużjoni ta' fajls barranin Evita Local u Remote File Inclusion
exec(), system(), shell_exec(), proc_open() Eżekuzzjoni ta' kmandi Command Injection
Output mingħajr htmlspecialchars() Cross-Site Scripting escaping skont il-kuntest
== b'tokens jew hashes Konverżjoni tat-tip tevita verifiki hash_equals(), tqabbil strett
eval(), extract() fuq inputs Injection ta' kodiċi jew ta' varjabbli ġeneralment neħħihom mingħajr sostitut

Ħarsa ġenerali inizjali mgħaġġla tirnexxi b'tfittxija sempliċi. Ma tissostitwix review, imma turi fejn għandu jinbeda:

# Postijiet ta' funzjonijiet riskjużi fil-kodiċi proprju (vendor eskluż)
grep -rnE "\b(unserialize|eval|extract|shell_exec|exec|system|passthru|proc_open)\s*\(" src/ app/ 2>/dev/null

Mill-inqas daqstant importanti hu dak li jonqos fil-kodiċi. Kull controller jivverifika jekk l-utent imdaħħal jistax jara jew ibiddel eżattament dan ir-rekord? L-uploads huma llimitati għat-tip u l-post tal-ħażna? Vulnerabbiltajiet bħal dawn ebda tfittxija għal ismijiet ta' funzjonijiet ma ssibhom, biss il-qari tal-fluss.

Għodod li jġorru r-review

L-analiżi statika tivverifika l-kodiċi mingħajr ma teżegwih. PHPStan u Psalm isibu żbalji tat-tip, kodiċi mhux milħuq u suppożizzjonijiet ħżiena dwar valuri mrritornati. Psalm joffri barra minn hekk analiżi taint, li ssegwi jekk data minn talbiet tgħaddix mhux ivverifikata lejn postijiet kritiċi. It-tnejn jistgħu jiġu mqabbża pass pass, b'mod li anke proġetti aktar qodma jistgħu jibdew. Ħarsa ġenerali tagħti Analiżi statika: PHPStan u Psalm.

# Analiżi statika fil-proġett, għolli l-livell pass pass
vendor/bin/phpstan analyse src --level=5
# Analiżi taint b'Psalm
vendor/bin/psalm --taint-analysis

L-għodod jagħtu indikazzjonijiet, mhux sentenzi. Kull hit jeħtieġ valutazzjoni, u rapport vojt ma jfissirx li l-applikazzjoni hija sigura.

Daqstant importanti daqs is-sejba hu li tinżamm. Kull sejba għandha tiġi rreġistrata b'post, deskrizzjoni qasira, stima tar-riskju, tiswija rakkomandata u status, l-aħjar direttament fis-sistema tat-tickets tat-tim. Hekk jista' jiġi segwit x'ġie rranġat, x'ġie aċċettat konxjament u x'għadu miftuħ. Wara t-tiswija jixraq it-tieni ħarsa: Il-kawża ġiet eliminata jew is-sintomu wieħed biss? L-istess mudell jidher f'postijiet oħra fil-kodiċi? Żball li sar darba, skont l-esperjenza, rarament jinsab f'post wieħed biss.

Checklist għat-tim proprju

Għal reviews tal-bidliet lista qasira u fissa wriet li taħdem. Tappartjeni fil-mudell tal-pull requests:

  1. Minn fejn jiġu d-data kollha li din il-bidla tipproċessa, u jiġu vverifikati fuq in-naħa tas-server?
  2. Il-mistoqsijiet tad-database jinbnew esklussivament b'placeholders?
  3. Kull output huwa escaped għall-kuntest tiegħu, jiġifieri HTML, attribut, JavaScript jew URL?
  4. Il-kodiċi jivverifika d-dritt għal eżattament dan l-oġġett, mhux biss il-login?
  5. Passwords, tokens jew data personali jaslu f'logs jew f'messaġġi ta' żball?
  6. Hemm sigrieti fil-kodiċi jew f'fajls versjonati?
  7. Ġew miżjuda dipendenzi ġodda, u huma miżmuma?
Suġġeriment

Ħallu partijiet kritiċi għas-sigurtà bħal login, ġestjoni tad-drittijiet, proċessi tal-ħlas u uploads dejjem jinqraw minn persuna oħra li ma kinitx involuta fil-kodiċi. Il-ħarsa barranija ssib suppożizzjonijiet li l-awtur iqis ovvji.

Kif tgħin PHP SOS b'mod konkret?

  • Flimkien ma' sħab speċjalizzati nagħmlu review bażiku tal-applikazzjoni PHP tagħkom, imwieżen skont il-partijiet bl-ogħla riskju.
  • Nistabbilixxu PHPStan jew Psalm adattat għall-istat tal-proġett tagħkom u niktbu l-checklist għall-pull requests tagħkom.
  • Nikkombinaw ir-review ma' ħarsa lejn is-server u l-konfigurazzjoni, għax ħafna vulnerabbiltajiet jinħolqu biss fl-interazzjoni.
  • Fejn tintalab verifika mill-barra, nissupplimentaw ir-review b'awditu tas-sigurtà u test ta' penetrazzjoni.

Konklużjoni: Code review huwa l-post l-irħas biex jiġu rranġati żbalji tas-sigurtà, jiġifieri qabel ma jitqassmu. Min janalizza kull bidla b'lista qasira u jeżamina l-proġett kompletament kultant, inaqqas il-wiċċ ta' attakk b'mod permanenti.

Mistoqsijiet frekwenti

X'inhi d-differenza bejn code review u test ta' penetrazzjoni?

Code review jaqra l-kodiċi sors u jsib żbalji qabel ma jitqassmu. Test ta' penetrazzjoni jattakka mill-barra l-applikazzjoni li taħdem. It-tnejn jikkumplimentaw lil xulxin: ir-review isib il-kawżi, it-test juri x'jista' tassew jiġi sfruttat.

Code review isib vulnerabbiltajiet bħal PHP2Shell?

Le. PHP2Shell jinsab fl-interpretatur ta' PHP, mhux fil-kodiċi tal-applikazzjoni. Kontra dan jgħin biss aġġornament ta' PHP b'restart. Review isib żbalji fil-kodiċi proprju, pereżempju injection, verifiki nieqsa tad-drittijiet jew deserjalizzazzjoni mhux sigura.

PHPStan jew Psalm huma biżżejjed għal review tas-sigurtà?

Huma bażi tajba u jsibu ħafna żbalji awtomatikament. Żbalji tal-loġika, verifiki nieqsa tad-drittijiet u suppożizzjonijiet ħżiena dwar il-proċessi jagħrafhom biss bniedem li jaf x'suppost tagħmel l-applikazzjoni.

Kemm idum code review tas-sigurtà?

Jiddependi mill-ambitu. Review ta' kull bidla fil-pull request jieħu ftit ħin. Review komplut ta' proġett li kiber huwa proġett għalih, li jiġi llimitat skont ir-riskju għall-partijiet ewlenin.

Sorsi

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata