<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/MustLive Edition" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Коментарі для запису: MustLive Perl Pascal Programs Interpreter</title>
	<link>http://websecurity.com.ua/2984/</link>
	<description></description>
	<pubDate>Thu, 09 Apr 2026 02:46:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=MustLive Edition</generator>

	<item>
		<title>від: MustLive</title>
		<link>http://websecurity.com.ua/2984/#comment-279303</link>
		<pubDate>Fri, 10 Apr 2009 21:21:45 +0000</pubDate>
		<guid>http://websecurity.com.ua/2984/#comment-279303</guid>
					<description>&lt;blockquote&gt;Неплохо было бы еще добавить какое-то вменяемое ;) ограничение на длину строки или вообще используемой памяти&lt;/blockquote&gt;
В березні я випустив &lt;a href="/2995/" rel="nofollow"&gt;нову версію інтерпретатора&lt;/a&gt;, де вирішив дану проблему.

Щоб не було можливості через цикли проводити DoS атаки я ввів в 2006 році, як додав підтриму цикла for, обмеження (налаштовуєме) на кількість циклів. Але в даному випадку воно не допомогло, бо вже на 20 ітераціях комп'ютер перевантажується (і тим паче на 25), що я перевірив на своєму двух-ядерному процесорі (на локалхості).

Тому я додав обмеження на довжину строкових даних (як додатковий анти-DoS захист). Це обмеження рівне 255 символам і воно налаштовується (його можна зробити таким яким треба).

З однієї сторони, дана зміна в системі зменшує її можливості для користувачів (тому є дещо неконструктивною). Але з іншої, за що тобі спасибі, це треба було зробити для покращення безпеки системи. Я якось випустив з уваги атаки на поглинання пам'яті, коли додав в систему підтримку строкових функцій. На даний момент я додав обмеження розміру строкових даних в функції concat та insert.</description>
		<content:encoded><![CDATA[<blockquote><p>Неплохо было бы еще добавить какое-то вменяемое <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ограничение на длину строки или вообще используемой памяти</p></blockquote>
<p>В березні я випустив <a href="/2995/" rel="nofollow">нову версію інтерпретатора</a>, де вирішив дану проблему.</p>
<p>Щоб не було можливості через цикли проводити DoS атаки я ввів в 2006 році, як додав підтриму цикла for, обмеження (налаштовуєме) на кількість циклів. Але в даному випадку воно не допомогло, бо вже на 20 ітераціях комп&#8217;ютер перевантажується (і тим паче на 25), що я перевірив на своєму двух-ядерному процесорі (на локалхості).</p>
<p>Тому я додав обмеження на довжину строкових даних (як додатковий анти-DoS захист). Це обмеження рівне 255 символам і воно налаштовується (його можна зробити таким яким треба).</p>
<p>З однієї сторони, дана зміна в системі зменшує її можливості для користувачів (тому є дещо неконструктивною). Але з іншої, за що тобі спасибі, це треба було зробити для покращення безпеки системи. Я якось випустив з уваги атаки на поглинання пам&#8217;яті, коли додав в систему підтримку строкових функцій. На даний момент я додав обмеження розміру строкових даних в функції concat та insert.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>від: MustLive</title>
		<link>http://websecurity.com.ua/2984/#comment-279299</link>
		<pubDate>Fri, 10 Apr 2009 20:58:00 +0000</pubDate>
		<guid>http://websecurity.com.ua/2984/#comment-279299</guid>
					<description>&lt;blockquote&gt;Я дико извиняюсь, но всё-таки это закончилось&lt;/blockquote&gt;
&lt;strong&gt;blexey&lt;/strong&gt;

Я бачу, в тебе в той день був дуже веселий настрій. Але варто бути більш конструктивним - проведення DoS атак на мій сайт "по приколу" не є конструктивним підходом ;-), слід було придумати інші приклади. До того ж, раніше я не робив обмеження на розмір строкових даних (як це є в класичному Паскалі), тому в моєму інтепретаторі строкові змінні могли мати розмір до 2 ГБ (максимум для Пєрла на 32-бітних системах).

Що було додатковим плюсом для Паскаль програмістів, що користувалися моїм інтерпретатором. А так мені довелося &lt;a href="/2995/" rel="nofollow"&gt;ввести&lt;/a&gt; обмеження - і тепер розмір строкових даних такий як у класичному Паскалі (255 символів). Зато інтерпретатор буде більш класичним :-). При цьому я зробив гнучкий механізм і кожен власник моєї системи зможе задати довільний розмір для сторокових даних.

&lt;blockquote&gt;Интересный метод. Взял на заметку.&lt;/blockquote&gt;
Так треба робити на будь-якому сервері - обмежувати ресурси для додатків (зокрема інтерпретаторів), щоб унеможливити DoS атаки через поглинання ресурсів. Наприклад, в PHP є налаштування для обмеження обсягу пам'яті для окремого скрипта. В Perl такого немає, тому потрібно задавати потрібні обмеження на рівні ОС. Як ти сам бачив, на моєму сервері провайдер виділив для Perl достатньо великий обсяг пам'яті, тому 500 помилку видало не дуже швидко.</description>
		<content:encoded><![CDATA[<blockquote><p>Я дико извиняюсь, но всё-таки это закончилось</p></blockquote>
<p><strong>blexey</strong></p>
<p>Я бачу, в тебе в той день був дуже веселий настрій. Але варто бути більш конструктивним - проведення DoS атак на мій сайт &#8220;по приколу&#8221; не є конструктивним підходом <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> , слід було придумати інші приклади. До того ж, раніше я не робив обмеження на розмір строкових даних (як це є в класичному Паскалі), тому в моєму інтепретаторі строкові змінні могли мати розмір до 2 ГБ (максимум для Пєрла на 32-бітних системах).</p>
<p>Що було додатковим плюсом для Паскаль програмістів, що користувалися моїм інтерпретатором. А так мені довелося <a href="/2995/" rel="nofollow">ввести</a> обмеження - і тепер розмір строкових даних такий як у класичному Паскалі (255 символів). Зато інтерпретатор буде більш класичним <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . При цьому я зробив гнучкий механізм і кожен власник моєї системи зможе задати довільний розмір для сторокових даних.</p>
<blockquote><p>Интересный метод. Взял на заметку.</p></blockquote>
<p>Так треба робити на будь-якому сервері - обмежувати ресурси для додатків (зокрема інтерпретаторів), щоб унеможливити DoS атаки через поглинання ресурсів. Наприклад, в PHP є налаштування для обмеження обсягу пам&#8217;яті для окремого скрипта. В Perl такого немає, тому потрібно задавати потрібні обмеження на рівні ОС. Як ти сам бачив, на моєму сервері провайдер виділив для Perl достатньо великий обсяг пам&#8217;яті, тому 500 помилку видало не дуже швидко.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>від: blexey</title>
		<link>http://websecurity.com.ua/2984/#comment-274374</link>
		<pubDate>Wed, 25 Mar 2009 20:08:39 +0000</pubDate>
		<guid>http://websecurity.com.ua/2984/#comment-274374</guid>
					<description>Интересный метод. Взял на заметку.</description>
		<content:encoded><![CDATA[<p>Интересный метод. Взял на заметку.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>від: MustLive</title>
		<link>http://websecurity.com.ua/2984/#comment-274117</link>
		<pubDate>Tue, 24 Mar 2009 21:57:07 +0000</pubDate>
		<guid>http://websecurity.com.ua/2984/#comment-274117</guid>
					<description>&lt;blockquote&gt;Я дико извиняюсь, но всё-таки это закончилось HTTP 500: Internal Server Error :mrgreen:&lt;/blockquote&gt;
Це такий захист сервера від DoS атак :-). Як ти бачиш він працює.

Коли інтерпретатор споживає забагато пам'яті, сервер вибиває Perl, що і зупиняє роботу мого інтерпретатора. Тим самим захищаючи від DoS атак на споживання ресурсів.</description>
		<content:encoded><![CDATA[<blockquote><p>Я дико извиняюсь, но всё-таки это закончилось HTTP 500: Internal Server Error  <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> </p></blockquote>
<p>Це такий захист сервера від DoS атак <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Як ти бачиш він працює.</p>
<p>Коли інтерпретатор споживає забагато пам&#8217;яті, сервер вибиває Perl, що і зупиняє роботу мого інтерпретатора. Тим самим захищаючи від DoS атак на споживання ресурсів.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>від: blexey</title>
		<link>http://websecurity.com.ua/2984/#comment-273544</link>
		<pubDate>Sun, 22 Mar 2009 22:16:33 +0000</pubDate>
		<guid>http://websecurity.com.ua/2984/#comment-273544</guid>
					<description>О, нет. Я дико извиняюсь, но всё-таки это закончилось HTTP 500: Internal Server Error  :mrgreen:</description>
		<content:encoded><![CDATA[<p>О, нет. Я дико извиняюсь, но всё-таки это закончилось HTTP 500: Internal Server Error   <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' />
</p>
]]></content:encoded>
				</item>
	<item>
		<title>від: blexey</title>
		<link>http://websecurity.com.ua/2984/#comment-273542</link>
		<pubDate>Sun, 22 Mar 2009 22:13:27 +0000</pubDate>
		<guid>http://websecurity.com.ua/2984/#comment-273542</guid>
					<description>Неплохо было бы еще добавить какое-то вменяемое ;) ограничение на длину строки или вообще используемой памяти - код:

var
 s : string;
begin
 s := 'Hello world!';
 for 1:=0 to 25 do s := concat(s, s);
 writeln(length(s))
end.

заставляет "интерпретатор" заняться долгим и очевидно увлекательным пожиранием памяти сервера. А внешне это выглядит как зависон.  :mrgreen:</description>
		<content:encoded><![CDATA[<p>Неплохо было бы еще добавить какое-то вменяемое <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ограничение на длину строки или вообще используемой памяти - код:</p>
<p>var<br />
 s : string;<br />
begin<br />
 s := &#8216;Hello world!&#8217;;<br />
 for 1:=0 to 25 do s := concat(s, s);<br />
 writeln(length(s))<br />
end.</p>
<p>заставляет &#8220;интерпретатор&#8221; заняться долгим и очевидно увлекательным пожиранием памяти сервера. А внешне это выглядит как зависон.   <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' />
</p>
]]></content:encoded>
				</item>
	<item>
		<title>від: MustLive</title>
		<link>http://websecurity.com.ua/2984/#comment-273530</link>
		<pubDate>Sun, 22 Mar 2009 21:22:11 +0000</pubDate>
		<guid>http://websecurity.com.ua/2984/#comment-273530</guid>
					<description>&lt;strong&gt;blexey&lt;/strong&gt;

Строкові змінні інтерпретатор підтримує і добре з ними справляється. В даному випадку ти використав кому після Hello - це і призвело до подібного результату. Напиши цей самий код без коми і все заробить ;-).

В даному випадку проблема в writeln, який обробляє коми як роздільник між змінними, масивами та іншими аргументами. Я записав собі в todo цей баг (в write/writeln я запланував ще багато покращень).

P.S.

Операторські дужки begin-end зараз не підтримуються. Їх я планую додати в наступних версіях - це буде одне з важливих покращень інтерпретатора, яке вимагає серйозної роботи, тому й потрібно знайти час для цього.</description>
		<content:encoded><![CDATA[<p><strong>blexey</strong></p>
<p>Строкові змінні інтерпретатор підтримує і добре з ними справляється. В даному випадку ти використав кому після Hello - це і призвело до подібного результату. Напиши цей самий код без коми і все заробить <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>В даному випадку проблема в writeln, який обробляє коми як роздільник між змінними, масивами та іншими аргументами. Я записав собі в todo цей баг (в write/writeln я запланував ще багато покращень).</p>
<p>P.S.</p>
<p>Операторські дужки begin-end зараз не підтримуються. Їх я планую додати в наступних версіях - це буде одне з важливих покращень інтерпретатора, яке вимагає серйозної роботи, тому й потрібно знайти час для цього.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>від: blexey</title>
		<link>http://websecurity.com.ua/2984/#comment-273518</link>
		<pubDate>Sun, 22 Mar 2009 20:11:58 +0000</pubDate>
		<guid>http://websecurity.com.ua/2984/#comment-273518</guid>
					<description>Интерпретатор как-то даже строковые переменные не осиливает.
Код

var
 s : string;
begin
 s := 'Hello, world! ';
 writeln(s)
end.

выдаёт:

, world!

Fun какой-то не очень получается ;)</description>
		<content:encoded><![CDATA[<p>Интерпретатор как-то даже строковые переменные не осиливает.<br />
Код</p>
<p>var<br />
 s : string;<br />
begin<br />
 s := &#8216;Hello, world! &#8216;;<br />
 writeln(s)<br />
end.</p>
<p>выдаёт:</p>
<p>, world!</p>
<p>Fun какой-то не очень получается <img src='http://websecurity.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
