Мысли вслух... :)
Misha v.3 23.10.2002 13:06
я не анализировал в деталях код, но похоже, что проблема в следующем:
Вариант 2 в плане применения taint правильный, но...
taint/untaint НЕ МЕНЯЮТ БУКОВОК.
Ты после "раскрашивания" вызываешь свой ^link[] а он берет и переколбашивает все... Он все равно найдет там амперсанд, который ты покрасил, т.к. до момента выбачи в броузер он будет оставаться амперсандом.
Т.е. в данном случае тебе нельзя использовать твой ^link[]
Ты можешь переписать твой ^link[] таким образом, чтобы он разбивал строку на подстроки, разделенные символом & с использованием match, и ты запоминал бы эти самые & (символ запоминал-бы с языком, на котором он есть) и после склейки склеивал-бы с момощью этих запомненых, испачканых '&'. Но это все равно не то, т.к. тебе вообще пачканые амперсанды надо выкинуть из обработки ^link[]-ом.
Так что наверное в твоем случае проще сделать replace символов, недопустимых в uri...