SEOSERVISE - Защита информации.

 
   
 

Главная


 


Этот код обеспечивает ввод в поле gty только положительных чисел. Однако, по­ скольку проверка выполняется в клиентском сценарии, ее легко обойти. Запретив вы­ полнение сценариев JavaScript в броузере, взломщик сможет обойти проверку входных данных в клиентской части приложения! Если сбросить флажок Enable JavaScript / за­претив таким образом выполнение сценариев JavaScript (рис. 10.14), то в поле можно будет ввести любое значение. На рис. 10.14 показано диалоговое окно параметров броузера Netscape , в котором можно отключить режим выполнения сценариев JavaScript . Теперь, если для обозначе­ ния количества товара ввести -3, броузер передаст на сервер следующий запрос POST : Обратите внимание, как такой HTTP -запрос позволяет полностью обойти меха­ низм проверки данных в клиентской части приложения. На рис. 10.15 показан от­ вет сервера. Из рис. 10.15 видно, что пользователь сделал заказ на 5 рубашек по $54,99 и -3 ру­ башки по $89,99. Общая стоимость покупки составила всего $4,98. Возможность раз­ мещения заказов на отрицательное количество товара и, таким образом, снижение общей стоимости покупки, покупателям очень понравилась! Именно этот изъян и по­служил причиной поступления в компанию Acme заказов на отрицательное количест­ во товара. Руководство Acme Fashion , Inc . сделало вывод о том, что выполнять проверку входных данных в клиентской части приложения крайне опасно и недопустимо. Кто же виноват в этой ошибке? Ответственность за обнаруженный изъян полностью воз­ лагается на разработчиков подсистемы выбора товаров ShopCart . exe . Проверка вход­ных данных должна выполняться именно в этом приложении. Однако, поскольку та­ кой механизм в нем отсутствует, разработчики Web -узла были вынуждены реализовать эту проверку с использованием клиентских сценариев. Даже в настоящее время во многих коммерческих подсистемах выбора товаров (торговых тележках) не выполняется жесткая проверка входных данных. Для обозна­ чения количества товара иногда можно использовать даже дробные числа. Другим приложениям можно передавать метасимволы или входные данные большого размера, приводящие к краху серверной части приложения.

 

 

 

 

 

 
 

1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86 |87 |88 |89 |90 |91 |92 |93 |94 |95 |96 |97 |98 |99 |100 |