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

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

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

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

IT-новости

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

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

подробнее

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

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

подробнее

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

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

подробнее

по определению может содержать только текст. Следовательно, нужно как-то кодировать произвольные бинарные данные символами, допустимыми в строчной JavaScript-константе.

Какие символы можно для этого использовать? HTML- или JavaScript-файл, содержащий приведенный выше фрагмент JavaScript, – это (скорее всего) обычный текстовый файл, в котором каждый символ кодируется одним байтом. Внутри же языка JavaScript все символы хранятся в формате Unicode по 2 байта на символ. Байты файла со значениями 0..127 всегда преобразуются в соответствующие символы Unicode, но для байтов 128..255 способ трансляции зависит от кодировки HTML-страницы, указанной HTTP-заголовком Content-Type или выбранной пользователем в браузере. Поэтому «безопасно» использовать в строчной константе только младшие 128 символов ASCII. Из них «отпадают» управляющие символы с кодами 0..31. Также не очень разумно использовать символы " и , при записи которых в строчной константе нужно добавлять лишний символ .

Я бы рекомендовал использовать 64 заведомо «безопасных» символа, скажем, все латинские буквы, цифры и пару знаков препинания. Тогда с помощью каждого символа можно кодировать 6 битов информации. Эти биты можно передать расшифровывающему алгоритму для восстановления полного Unicode-текста исходного JavaScript-кода.

«Спагетти»

К сожалению, приведенное выше решение только на первый взгляд кажется действенным.

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

А что, если не делать специальную расшифровывающую функцию, а просто разместить соответствующий код в каждой точке, где он нужен? Это не поможет – такой код все равно можно автоматически повсюду отыскать и заменить своим кодом, который будет дополнительно записывать на диск расшифрованный текст. Даже если делать расшифровывающий код каждый раз немного другим, чтобы его нельзя было искать автоматически, все равно остается «узкое место» – вызов «eval». Все вызовы eval или эквивалентные средства JavaScript типа

new Function(...)

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


Предыдущая страницаОглавлениеСледующая страница
 
[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 - 2016 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100