taint
1.0.0
تمديد PHP المستخدمة للكشف عن رموز XSS (سلسلة ملوثة) ، ويمكن أيضًا استخدامها لاكتشاف نقاط الضعف في حقن SQL ، حقن الصدفة ، إلخ.
الفكرة هي من https://wiki.php.net/rfc/taint ، لقد قمت بتطبيقها في امتداد PHP الذي يجعل التصحيح لا حاجة إليه.
يرجى ملاحظة عدم تمكين هذا الامتداد في Product Env ، لأنه سيؤدي إلى إبطاء تطبيقك.
بسبب مضاعفات تنفيذ PHP8.0 ، لن تكون Taint متوافقة مع PHP8.0+.
Taint هو امتداد PECL ، وبالتالي يمكنك ببساطة تثبيته بواسطة:
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);