parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

^untaint(ed) - было бо более точно, но лингвистически криво, причем вся кривизна понимания taint-измов с порога именно в семантике и подаче

andylars 27.06.2016 21:56 / 27.06.2016 22:15

Так как ^untaint = не отменяет покраску вообще.
А отменяет только "неопределенную" (tainted-краску).
И то не "отменяет", а красит в "as-is".

Вообще, формально стоило просто не смешивать "тип-краски" и названия методов.
Ко всему прочему, еще тип краски "tainted" прописан не в списке, а в строках по тексту, что усложняет умозрительное восприятие.

Поправьте, если я ошибаюсь, но формально модель выглядит выглядит так:

Для всех символов строк - есть типы красок.
 tainted  - неопределенно-грязные
 as-is - чистые как есть
 url 
 file
 ...
Так мало того - tainted-краска называется "сбивающе" с толку (лучше бы dirty называлась), так этот тип тупо не перечислен в таблице видов краски ниже, а "подлый" оператор ^taint - красит в эту "tainted"-краску без указания "вида краски".

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


1) tainted-краску - переназвать "dirty" (чтобы отгородить от методов)
2) перечислить ее в таблице видов краски (в документации)
3) и можно даже добавить опционально для порядка к ^taint[dirty][string]
потому что он это и так делает, но только без указания аргумента, а не просто по-умолчанию.


Ясно, что делалось это давно и исторически так сложилось...


Вообще если рассуждать формально, то не нужен никакой untaint,
нужен
^taint[to][which][string]


to - в какой цвет красим: dirty(tainted), as-is, url...  (по-умолчанию dirty)
which -  красим всё или выбранный цвет: all, dirty(tainted), as-is, url... (по умолчанию all)
string - строка


тогда 

^taint[string] - покрасит всё в dirty(tainted) - как он и делает сейчас

а 

^taint[as-is][dirty][string] - "очистит" только dirty(tainted)-куски, сделая их as-is

как это делает сейчас ^untaint{string} 
----

Плюсы:
+ Становится и чище и гибче и даже больше возможностей - при всё том же механизме покраски.
+ Добавляется лучшая читаемость всего, что происходит, особенно с порога
+ Бородатый и странный ^untaint{} - в legacy-топку. (Остается для обратной совм)