taint
1.0.0
ส่วนขยายของ PHP ที่ใช้ในการตรวจจับรหัส XSS (สตริงที่มีการปนเปื้อน) และยังสามารถใช้ในการตรวจหาช่องโหว่การฉีด SQL, การฉีดเปลือก ฯลฯ ฯลฯ
แนวคิดนี้มาจาก https://wiki.php.net/rfc/taint ฉันนำไปใช้ในส่วนขยาย PHP ซึ่งทำให้แพตช์ไม่ต้องการ
โปรดทราบว่าไม่เปิดใช้งานส่วนขยายนี้ใน Env ผลิตภัณฑ์เนื่องจากมันจะชะลอตัวลงแอปของคุณ
เนื่องจากภาวะแทรกซ้อนของการใช้งาน Php8.0 Taint จะไม่เข้ากันได้กับ Php8.0+
taint is an PECL extension, thus you can simply install it by:
pecl install taint
$/path/to/phpize
$./configure --with-php-config=/path/to/php-config/
$make && make install
เมื่อเปิดใช้งาน Taint หากคุณผ่านสตริงที่มีค่าใช้จ่าย (มาจาก $ _get, $ _post หรือ $ _cookie) ไปยังฟังก์ชั่นบางอย่าง Taint จะเตือนคุณเกี่ยวกับเรื่องนั้น
<?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 );ตัวอย่างข้างต้นจะส่งออกสิ่งที่คล้ายกับ:
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
หากคุณต้องการซ่อนข้อผิดพลาดสำหรับสคริปต์เฉพาะคุณสามารถ:
ini_set('taint.error_level', 0);