bug в 3.4.2? untaint
as 28.06.2012 09:09
В некоторых проектах появился баг (?) с taint/untaint:
Есть файл-шаблон template.shtml:
<html>
<body>
^common:showtext[]
</body>
</html>
Шаблон обрабатывается через ^process[]:
$f[^file::load[text;template.shtml]]
^process{^untaint[as-is]{$f.text}}
Есть класс с процедурой вывода текста common.p:
@showtext[]
$result[^string:sql[...]]
Суть бага - в шаблон перестаёт подставляться текст из @showtext - вместо текста выводится "пробел".
Если в шаблоне template.shtml дописать untaint - текст начинает выводиться - вот так работает:
<html>
<body>
^untaint[as-is]{^common:showtext[]}
</body>
</html>
А если untaint сделать в процедуре - не работает:
@showtext[]
$result[^untaint[as-is]{^string:sql[...]}]
Такое ощущение, что текст, возвращаемый процедурой помечается "грязным", и внутри процедуры это невозможно изменить - только вне.
* Баг (?) наблюдается не во всех случаях: например, на сайте три колонки, одна выводится, две нет - процедура одинаковая.
- bug в 3.4.2? untaint, as 28.06.2012 09:09