Иллюстрированный самоучитель по защите в Интернет

Плохое проектирование в Web

Хотя в истории развития Internet имеются многочисленные примеры разрушительных атак на Web-серверы, которые позволяют взломщикам получать важную информацию об устройстве сервера, а зачастую и привилегированные права доступа, эти взломы – только вершина айсберга. Многие разработчики не стремятся изучить жизненно важные методы проектирования, которые могли бы ограничить нежелательное использование их Web-серверов. В развитие многих из методов, обсуждаемых в этой главе, внесли вклад многие люди, в том числе Симпл Номад (Simple Nomad) из центра NMRC и компания Perfecto Inc.

Использование скрытых дескрипторов

В настоящее время многие компании пользуются Internet, предлагая свои продукты и услуги любому, у кого есть Web-браузер. Но "плохо запрограммированная" тележка для покупок может позволить взломщику фальсифицировать стоимость товаров. Например, рассмотрим небольшую компанию, занимающуюся продажей аппаратного обеспечения. Эта компания обзавелась собственным Web-сервером, чтобы ее клиенты могли осуществлять покупки в интерактивном режиме. Однако они допустили в программе важный промах: применили скрытые дескрипторы HTML как единственный механизм назначения цены за определенный товар. В результате, если взломщики обнаружат это уязвимое место, они смогут изменить цену, стоящую в скрытых дескрипторах, по своему усмотрению.

Например, пусть на Web-узле имеется страница продаж со следующим кодом HTML.

<FORM ACTION="http://192.168.51.101/cgi-bin/order.pi"
method="post">
<input type=hidden name="price"
value="199.99">
<input type=hidden name="prd_id"
value="X190">
QUANTITY: <input type=text name="
quant" size=3 maxlength=3 value=l>
</FORM>

В этом случае простое изменение цены с помощью Netscape Composer или в любом текстовом редакторе позволит взломщику заплатить за товар $1.99 вместо предполагаемой суммы $199.99:

<input type=hidden name="price" value="l.99">

Если вам кажется, что такой стиль программирования встречается редко, то можете удостовериться в этом самостоятельно. Стоит лишь зайти на узел http://www.altavista.com и осуществить поиск, задав в качестве критерия строку type=hidden name=price. В результате будут получены адреса сотни узлов, обладающих таким изъяном.

Другая форма взлома заключается в использовании значения ширины поля. При проектировании в Web указываются многие размеры, однако взломщик может менять заданные разработчиком значения, указывая размеры порядка 70.000 символов. Затем он может ввести в соответствующее поле строку, состоящую из большого числа символов, и это может привести к выходу сервера из строя. Если этого и не произойдет, то подобные действия все же могут привести к непредсказуемым последствиям.

Контрмеры против использования скрытых дескрипторов

Чтобы предотвратить возможность использования взломщиками скрытых дескрипторов HTML, ограничьте их использование в коде, который обеспечивает хранение такой важной информации как цены, или, по крайней мере, реализуйте режим подтверждения этих значений перед их использованием.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.