LINUX.ORG.RU

История изменений

Исправление Croco, (текущая версия) :

Для наличия уязвимостей и тому подобных вещей тьюринг-полнота не является ни достаточным критерием, ни необходимым.

Если на стороне клиента имеется интерпретатор тьюринг-полного языка, который согласен выполнять программы на этом языке вне зависимости от их источника, то это является уязвимостью само по себе. В частности, время рендеринга HTML-страницы есть некая функция от её длины (точнее, мажорируется такой функцией), и эта функция почти линейна. Как говорится, in contrast: время выполнения программы на тьюринг-полном языке вообще не может быть предсказано, это алгоритмически неразрешимая проблема. То есть возможность DoS возникает ровно в тот момент, когда появляется интерпретатор.

Кроме того, есть ещё тезис (если угодно, назовите его тезисом Столярова, хотя я практически уверен, что это высказывали до меня, и не раз): задача написания НЕдырявого тьюринг-полного интерпретатора превосходит человеческие возможности. Иначе говоря, в любом интерпретаторе любого языка программирования всегда будут оставаться уязвимости (по меньшей мере arbitrary code execution), сколько бы их оттуда ни повылавливали. Тезис, очевидно, недоказуем (то есть формально его можно отнести к разряду голословных утверждений), но весьма убедительно подтверждается практикой: пока что нахождение дыры в любом интерпретаторе оказывалось вопросом времени.

Исправление Croco, :

Для наличия уязвимостей и тому подобных вещей тьюринг-полнота не является ни достаточным критерием, ни необходимым.

Если на стороне клиента имеется интерпретатор тьюринг-полного языка, который согласен выполнять программы на этом языке вне зависимости от их источника, то это является уязвимостью само по себе. В частности, время рендеринга HTML-страницы есть некая функция от её длины (точнее, мажорируется такой функцией), и эта функция почти линейна. Как говорится, inb contrast: время выполнения программы на тьюринг-полном языке вообще не может быть предсказано, это алгоритмически неразрешимая проблема.

Кроме того, есть ещё тезис (если угодно, назовите его тезисом Столярова, хотя я практически уверен, что это высказывали до меня, и не раз): задача написания НЕдырявого тьюринг-полного интерпретатора превосходит человеческие возможности. Иначе говоря, в любом интерпретаторе любого языка программирования всегда будут оставаться уязвимости (по меньшей мере arbitrary code execution), сколько бы их оттуда ни повылавливали. Тезис, очевидно, недоказуем (то есть формально его можно отнести к разряду голословных утверждений), но весьма убедительно подтверждается практикой: пока что нахождение дыры в любом интерпретаторе оказывалось вопросом времени.

Исходная версия Croco, :

Для наличия уязвимостей и тому подобных вещей тьюринг-полнота не является ни достаточным критерием, ни необходимым.

Если на стороне клиента имеется интерпретатор тьюринг-полного языка, который согласен выполнять программы на этом языке вне зависимости от их источника, то это является уязвимостью само по себе. В частности, время рендеринга HTML-страницы есть некая функция от её длины (точнее, мажорирется такой функцией), и эта функция почти линейна. Как говорится, inb contrast: время выполнения программы на тьюринг-полном языке вообще не может быть предсказано, это алгоритмически неразрешимая проблема.

Кроме того, есть ещё тезис (если угодно, назовите его тезисом Столярова, хотя я практически уверен, что это высказывали до меня, и не раз): задача написания НЕдырявого тьюринг-полного интерпретатора превосходит человеческие возможности. Иначе говоря, в любом интерпретаторе любого языка программирования всегда будут оставаться уязвимости (по меньшей мере arbitrary code execution), сколько бы их оттуда ни повылавливали. Тезис, очевидно, недоказуем (то есть формально его можно отнести к разряду голословных утверждений), но весьма убедительно подтверждается практикой: пока что нахождение дыры в любом интерпретаторе оказывалось вопросом времени.