Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

Конечно, кэширование этого JavaScript-файла было отключено.

Подобную защиту в принципе преодолеть так же просто, как и обычную блокировку кэширования, например, с помощью клиентского proxy-сервера, описанного в предыдущем пункте. Однако ленивый хакер, взламывающий «подручными средствами», вполне может оказаться сбитым с толку.

Cамогенерация методом document.writeln()

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

Основным приемом в данном случае является самогенерация страницы JavaScript-методом document. writeln(). HTML-страница (включающая, возможно, некоторый JavaScript) в этом случае «зашифровывается» в виде некоторой бессмысленной на вид строки символов – строковой константы языка JavaScript. Затем вызывается некоторая JavaScript-функция, расшифровывающая эту строку, и ее результат передается методу document.writeln().

В Интернете можно найти специальные утилиты, выполняющие подобное преобразование с готовой HTML-страницей. Некоторые из них при этом выполняют сжатие данных, так что «бессмысленная» строка оказывается короче исходного HTML- и JavaScript-кода.

При банальной реализации подобную защиту тоже легко взломать. Ведь страница уже «вынужденно» содержит процедуру расшифровки! Ничто не мешает слегка подправить исходный текст страницы и вставить перед вызовом document.writeln() распечатку аргумента этого метода в любое место, откуда его легко прочитать.

Тем не менее идея шифрования – одна из самых продуктивных. Мы это увидим в следующих разделах, когда будем пытаться создать «серьезную» систему защиты. Пока что заметим: ниоткуда не следует, что первый же вызов процедуры расшифровки сразу «поднесет на блюдечке» взломщику полностью расшифрованный исходный текст страницы. Может быть, будет расшифрована только небольшая часть, содержащая, в свою очередь, вызов процедуры расшифровки для следующего фрагмента. Может быть, веб-приложение состоит из сотен небольших страниц и взаимосвязанных скриптов, в которых не так-то легко найти и «подправить» вызовы расшифровывающих процедур.

Есть одна общая проблема, которую следует иметь в виду при использовании метода document. writeln(). Если содержимое страницы в Internet Explorer целиком выделить, скопировать в ClipBoard и затем попытаться вставить в какой-нибудь HTML-редактор, например в FrontPage Editor, то содержимое страницы будет вставлено уже «в готовом виде». Если часть страницы (включая какие-то JavaScript-фрагменты) была сгенерирована вызовом document.writeln(), то в HTML-редактор попадет и скрипт, содержащий вызов и тот HTML-код, который им был создан.


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100