PHP -Erweiterung zum Nachweis von XSS -Codes (verdorbene Zeichenfolge) und kann auch verwendet werden, um SQL -Injektionsanfälligkeiten, Schaleninjektionen usw. zu erkennen.
Die Idee stammt von https://wiki.php.net/rfc/taint.
Bitte beachten Sie, dass diese Erweiterung nicht in Produktvolumen aktiviert werden kann, da sie Ihre App verlangsamt.
Aufgrund der Komplikation der Implementierung von PHP8.0 wird Taint nicht mit Php8.0+kompatibel sein.
Taint ist eine PECL -Erweiterung, daher können Sie sie einfach installieren, bis:
pecl install taint
$/path/to/phpize
$./configure --with-php-config=/path/to/php-config/
$make && make install
Wenn Taint aktiviert ist, wenn Sie eine verdorbene Zeichenfolge (von $ _get, $ _post oder $ _cookie) an einige Funktionen übergeben, warnt Taint Sie davor.
<?php
$ a = trim ( $ _GET [ ' a ' ]);
$ file_name = ' /tmp ' . $ a ;
$ output = " Welcome, { $ a } !!! " ;
$ var = " output " ;
$ sql = " Select * from " . $ a ;
$ sql .= " ooxx " ;
echo $ output ;
print $ $ var ;
include ( $ file_name );
mysql_query ( $ sql );Das obige Beispiel gibt etwas Ähnliches aus:
Warning: main() [function.echo]: Attempt to echo a string that might be tainted
Warning: main() [function.echo]: Attempt to print a string that might be tainted
Warning: include() [function.include]: File path contains data that might be tainted
Warning: mysql_query() [function.mysql-query]: SQL statement contains data that might be tainted
Wenn Sie die Fehler für ein bestimmtes Skript ausblenden müssen, können Sie:
ini_set('taint.error_level', 0);