A Psalm 3.12, a PHP nyelv statikus elemzőjének kiadása. A PHP 8.0 alfa kiadása.

A Vimeo cég kiadta új verzió a statikus elemzőről Psalm 3.12, amely lehetővé teszi a nyilvánvaló és nehezen észlelhető hibák azonosítását PHP nyelven írt kódokban, valamint bizonyos hibák automatikus javítását. A rendszer alkalmas problémák azonosítására elavult kódokban, valamint az új PHP ágakban megjelent modern lehetőségeket használó kódokban. A projekt kódja PHP nyelven íródott és terjesztésre kerül MIT licenc alatt áll.

A Psalm a típusok helytelen használatával kapcsolatos problémák nagy részét, valamint különböző tipikus hibákat. Például támogatja a különböző típusú változók keverésére vonatkozó figyelmeztetések kiadását, hibás logikai ellenőrzéseket (mint például: „if ($a && $a) {}”, „if ($a && !$a) {}” és „if ($a) {} elseif ($a) {}”), a tulajdonságok nem teljes inicializálását. Az elemző több szálon fut. Lehetséges inkrementális ellenőrzések végrehajtása, ahol csak azok a fájlok kerülnek elemzésre, amelyek az utolsó ellenőrzés óta megváltoztak.

További biztonságos programozási eszközöket is biztosít, amelyek lehetővé teszik használni annotációk formátumban Docblock („/** @var Típus * /”) a változók típusaira vonatkozó információk, a visszatérési értékek, a funkciók paraméterei és az objektumok tulajdonságai megadására. Továbbá támogatja a típusok használatának mintáinak meghatározását és az assert kifejezések alkalmazását. Például:

/** @var string|null */
$a = foo();

/** @var string $a */
echo strpos($a, 'hello');

/** @psalm-assert-if-true B $a */
function isValidB(A $a) : bool {
return $a instanceof B && $a->isValid();
}

A talált problémák automatikus javítását a Psalter segédprogram biztosítja, amely támogatja a bővítményeket és MMM-DD-YYYY a tipikus problémák megoldását a kódban, típus annotációk hozzáadását, valamint olyan manipulációk végrehajtását, mint például osztályok áthelyezése egyik névtérből a másikba, metódusok áthelyezése osztályokon belül, osztályok és metódusok átnevezése.

Az új Psalm kiadásban megvalósítva a "—taint-analysis" opció lehetővé teszi a kapcsolat nyomon követését a felhasználótól kapott bemeneti paraméterek (például: $_GET[‘name’]) és azok felhasználása között, ahol karakterek escapingje szükséges (például: echo "<h1>$name</h1>»), beleértve a köztes értékadási láncok és függvényhívások nyomon követését. A potenciálisan veszélyes adatok forrásként figyelembe vehetők az asszociatív tömbök, mint például $_GET, $_POST és $_COOKIE, de ez lehetséges is a meghatározás saját források. A figyelmet igénylő lépések közé tartoznak a kimeneti műveletek, amelyek HTML formátumú tartalom létrehozását, HTTP-fejlécek hozzáadását vagy SQL-lekérdezések végrehajtását eredményezik.

A vizsgálat olyan funkciók használatakor alkalmazandó, mint az echo, exec, include és header. Az escape sorok szükségességének elemzésekor figyelembe kell venni az adatokat, mint például a szöveget, SQL-vel, HTML-lel és Shell-kóddal rendelkező karakterláncokat, valamint az azonosító paraméterekkel rendelkező karakterláncokat. A javasolt mód lehetővé teszi a kódban lévő sebezhetőségek azonosítását, amelyek keresztoldali scripteléshez (XSS) vagy SQL-kód beszúrásához vezetnek.

További megjegyzésként a kezdet az új PHP 8.0 ág alfa-tesztelése. A kiadás november 26-ra van betervezve. Az új ágban a következők várhatóak: újdonságok, mint például:

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster