регул. выр. - *безопасные* теги

HEm

Сетевой бобер
регул. выр. - *безопасные* теги

Во-первых, скажите список *безопасных* тегов, вставка которых со стороны пользователей не повлияет ни на конфиденциальность информации на сервере ни тем более на его устойчивость к кулхацкерам
Во-вторых, вот, такой скрыпт пишу для восстановления *безопасных* тегов после обработки htmlspecialchars (просьба не кричать про откл. жабаскрипта, все по очереди, щас задача - корректно восстановить теги указанные в массиве)

файл clrhtm.php
<?
function clearhtml($s)
{
$safetags1=array("1"=>"th", "2"=>"b", "3"=>"i", "4"=>"h2",
"5"=>"h3", "6"=>"h4", "7"=>"h5", "8"=>"h6",
"9"=>"h7", "10"=>"center", "11"=>"td", "12"=>"a",
"13"=>"p", "14"=>"table", "15"=>"big", "16"=>"blockquote",
"17"=>"dt", "18"=>"ol", "19"=>"ul", "20"=>"li",
"21"=>"font", "22"=>"tr", "23"=>"pre", "24"=>"s",
"25"=>"sub", "26"=>"sup", "27"=>"u", "28"=>"dd", "29"=>"dl");
$safetags2=array("1"=>"br", "2"=>"hr");

$tmp=htmlspecialchars($s);

for ($i=1;$i<count($safetags1)+1;$i++)
{ $ss1="<(".$safetags1[$i]."([:alnum:]*)(>)$)(.*)<(/".$safetags1[$i].")(>)$";
ereg_replace($ss1,"<\\1>\\4<\\5>",$tmp);
}
}
?>

файл test.php
<?
include("clrhtml.php");
$f=fopen("../main.htm","r");
$s=fread($f,filesize("../main.htm"));
fclose($f);
$s1=clearhtml($s);
echo $s1."\n<br>-----------------------------<br>".$s;
?>

В итоге $s1 пустая, где ошибка?
 

HEm

Сетевой бобер
пардон, увидел! return забыл поставить, а первый вопрос остается в силе!
 

HEm

Сетевой бобер
а теги не поменял... :(
т.е. содержимое файла *../main.htm* повторяется как будто и не было ereg_replace...
 

DiMA

php.spb.ru
Команда форума
а причем тут
> просьба не кричать про откл. жабаскрипта
?

Замена < на код отключает любой JS.

Можно использовать кучу тегов, главное убедиться, что ты имеешь полный контроль над парамертами тега и символов и нем. Другой вопрос, на сколько тегов хватит сил (писать, писать, писать.... :)
 

HEm

Сетевой бобер
А проще разрешать или запрещать?
а про жабу я написал в смысле таком:
<u OnMouseOver="javascript:window.open('www.pornospam.ru'); ">
Да уж... писать и писать.... всё предусмотреть сложно... Вот потому еще раз прошу: дайте ссылку про безопасное написание хтмл-тегов или наоборот, хацкерские советы, почитаю - оборонюсь ;))
 
Сверху