Лекция: Оформления текста. Тогда последнее, что остается сделать, - фильтровать часть кодов, оставляя лишь самые
<безопасные>. Это наиболее трудоемкий и потенциально опасный путь:
@BADTAG = ( «applet», «script»,
«iframe»,
йит. д., все «опасные» тэги «img» ); foreach
$t(@BADTAG)
{
$string =~ s/<$t/<none/gi; $string =' s/</$t/</none/gi: }
Такой подход чреват некоторыми опасностями. Например, известный скрипт formmail Мэтта Райта в
последнее время фильтрует SSI следующим образом: value =~s/<!--(. l\n)*-->//g;
Это несомненный прогресс по сравнению с первыми версиями, просто пропускавшими SSI. Однако проблема
в том, что Apache, по крайней мере, не требует присутствия закрывающих символов <-->> для выполнения
указанной директивы, поэтому злоумышленник может добиться своего, просто введя строку <! --ftinclude
virtual=«some. html».
Казалось бы, можно справиться с проблемой, <выкусывая> <!- (value =~ s/<! --//g,), но и в этом случае
остается обходной маневр: строка <!--!--^include virtual=«some.html» в итоге преобразуется в <i--#include virtual^
«some. html».
. Достаточно безопасной можно считать конструкцию while(s/<!--//g){}, хотя и у нее есть свои минусы. Похожие
Проблемы возникают на серверах,
Использующих ASP, РНР и т. д., причем большинство свободно распространяемых скриптов их просто
Игнорирует. Будьте крайне осторожны, адаптируя готовый скрипт к своему серверу, если он (сервер) умеет чуть