Главная · Железо · Такой себе пример. JavaScript: Прячем скрипт от посторонних глаз Исходный код скрипта

Такой себе пример. JavaScript: Прячем скрипт от посторонних глаз Исходный код скрипта

Очень просто - достаточно щелкнуть ее правой кнопкой мышки и выбрать соответствующий пункт в контекстном меню. Формулировка может различаться в зависимости от используемого браузера: в Mozilla Firefox это называется «Исходный », в Apple Safari - «Посмотреть источник», в Google Chrome - «Просмотр кода страницы», в Opera - «Исходный код», в Internet Explorer - «Просмотр HTML-кода».

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

Исходный код клиентских скриптов, которые исполняются непосредственно в браузере (например, JavaScript), можно посмотреть, если извлечь их файлы из кэша браузера. А еще проще - сохранить страницы со всеми сопутствующими ей файлами в какое-либо определенное место. В этом случае не придется перекапывать все хранимое в кэше. Чтобы это сделать, в любом браузере надо нажать сочетание клавиш CTRL + S, а затем в поле «Тип файла» выбрать «Веб-страница полностью». Открывать файлы с расширением js, содержащие исходный код скрипта, тоже можно обычным текстовым редактором.

Исходный код флэш-роликов, которые загружаются браузером в ваш компьютер, посмотреть не так просто. Браузер получает не исходный код, а лишь его откомпилированный вариант - исполняемый код. Однако есть программы-декомпиляторы, которые способны произвести процедуру обратного преобразования. Например, Flash Decompiler Trillix встраивается в ваш браузер и позволяет извлечь из страницы флэш-объект и сохранить. Открыв затем флэш в декомпиляторе, вы получите доступ к отдельным его компоненты - изображениям, скриптам, звукам и т.д. Разумеется, этот код не будет полностью соответствовать исходникам автора, а лишь с достаточной для функционирования степенью точности.

«Исходником» чаще всего называют код какой-либо программы на понятном человеку (высокоуровневом) языке программирования. Имея этот код, можно внести изменения в программу (скрипт, флэш-ролик, java-приложение, прикладную программу и т.д.). Автор или распространитель программы сам определяет, раздавать ли ему исходный код вместе с готовым продуктом. Есть целый класс приложений, которые распространяются «с открытым кодом», исходный код других программ (например, JavaScript-сценариев или HTML-страниц) по определению не может быть скрыт, а исходники остальных программ являются объектом авторского права.

Инструкция

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

Щелкните правой кнопкой веб-страницу, если хотите получить доступ к ее исходному коду. В любом браузере выпавшее контекстное меню будет содержать команду просмотра исходника, хотя формулировки ее могут слегка различаться. Можно обойтись и без контекстного меню - сочетание клавиш ctrl + u дублирует вызов команды просмотра исходника. Некоторые из браузеров имеют встроенные инструменты просмотра (Mozilla Firefox, Google Chrome), другие используют для этого внешние программы - чаще всего Блокнот. Полученный таким способом исходник страницы вы можете сохранить в файл.


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

Простейший интернет-сайт состоит из одной или нескольких веб-страниц (web-страниц, ).

Чтобы использовать сценарии на JavaScript, необходимо как-то встроить исходный код сценария в веб-страницу.

Вот об этом то я сегодня и расскажу.

Итак, сценарий в теле HTML-страницы может быть вставлен практически в любом месте.

Если вы вставляете какую-то функцию, то её лучше размещать в заголовке страницы. То есть где-то между

... .

Сам сценарий помещается между тегами

Здесь в качестве параметра открывающего тега

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

Чтобы текст исходного кода не отображался браузером , исходный код надо написать как комментарий HTML-разметки, то есть между символами

То есть так:

Но есть ещё одна фишка. Особо тупые браузеры не понимают символа --> . Поэтому, чтобы код гарантированно не был виден пользователю во всех браузерах, рекомендуется делать так:

ПРИМЕЧАНИЕ
Почти все современные браузеры будут нормально работать, даже если вы не используете символы комментариев в HTML-разметке. Однако лучше это делать, так как у пользователя может оказаться какой-нибудь старый браузер.

Ну а теперь пример простейшей HTML-страницы со встроенным сценарием JavaScript:

Создайте текстовый файл, измените у него расширение (должно быть не txt , а htm или html), вставьте указанный выше текст и сохраните.

Затем просто запустите этот файл двойным щелчком мыши. Откроется ваш браузер по умолчанию и появится сообщение “Мой первый сценарий на web-странице!”.

Как вы уже догадались, HTML-страницы и встроенные в них сценарии могут работать на компьютере пользователя, даже если у него нет подключения к интернету. А это значит, что...

ВНИМАНИЕ!
С помощью JavaScript вы можете писать программы, которые будут работать на компьютере пользователя. Причем совершенно не важно, какая у него операционная система! Главное, чтобы его браузер поддерживал выполнение сценариев. И при этом вам не нужны никакие специальные средства разработки, которые стоят безумных денег - достаточно лишь текстового редактора!

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

Теория Допустим у нас есть страничка nojs.php, а на ней скрипт secret.js, который надо спрятать. Браузер и пользователь могут получить скрипт с сервера следующими путями:
  • Загрузка скрипта непосредственно размещенного на странице или подгруженного с помощью DOM;
  • Просмотр скрипта в окне Исходный код страницы ;
  • Сохранение страницы со всеми файлами на жесткий диск;
  • Ввод прямого URL в адресной строке.
  • В первом случае браузер обязательно передает http-заголовок HTTP_REFERER.
    Во втором и третьем случае он передается не всеми браузерами (Chrome, FireFox выдают ранее загруженный скрипт из кэша; Opera, IE загружают скрипт вновь, но уже без отправки referer).
    В четвертом случае referer не передается ни одним из этих четырех браузеров.
    Если выдавать JavaScript динамически с проверкой наличия заголовка referer в запросе, то мы сразу же защитимся от Opera и IE, но для Crome и Firefox придется придумать что-то позаковыристее. Мы загрузим сначала один скрипт, который в свою очередь загрузит другой скрипт, при этом обе загрузки будем проверять на наличие http-referer. Методом научного тыка установлено, что если динамически создать скрипт на странице document.createElement(«script»), а потом удалить его со страницы, то скрипт будет работать как обычно, но сохраняться он не будет.Практикаnojs.php Эта страничка несет в себе цель загрузить script1.php
    Найди JS Через 10 секунд Вы должны увидеть работу скрываемого скрипта в виде аллерта нажмите ссылку после алерта, дабы убедиться что события тоже не отвалились. По этой ссылке можно увидеть скрываемый скрипт script1.php Его задача: динамически загрузить script2.php, если есть заголовок referer. Таймауты можно уменьшить, в зависимости от примерного времени выполнения скрываемого скрипта.
    script2.php Его задача: выдать конечный скрипт, если есть заголовок referer
    Итоги В итоге мы получаем, что мы не можем ни посмотреть в исходном коде страницы, ни скачать, ни сохранить скрываемый скрипт средствами тестируемых четырех браузеров. Вообще же можно посмотреть его двумя способами:
    • Переход по ссылке прямо ведущей на script2.php и расположенной на странице нашего сайта;
    • Формирование http-запроса с указанием в нем заголовка referer.
    Повысыть эффективность скрытия можно такими методами:
  • С помощью mod-rewrite заменять идущие к серверу script1.js и script2.js на script1.php и script2.php соответственно, чтобы на странице были всем привычные файлы js, так как php резко бросается в глаза;
  • Сделать фиктивный скрипт максимально сложным, правдоподобным и запутанным, чтобы человек пытающийся его разобрать изрядно помучался перед осознанием того, что его обманули;
  • Обфускация кода.
  • Наташа 31 октября 2011 в 03:10 JavaScript: Прячем скрипт от посторонних глаз
    • Чулан *

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

    Теория Допустим у нас есть страничка nojs.php, а на ней скрипт secret.js, который надо спрятать. Браузер и пользователь могут получить скрипт с сервера следующими путями:
  • Загрузка скрипта непосредственно размещенного на странице или подгруженного с помощью DOM;
  • Просмотр скрипта в окне Исходный код страницы ;
  • Сохранение страницы со всеми файлами на жесткий диск;
  • Ввод прямого URL в адресной строке.
  • В первом случае браузер обязательно передает http-заголовок HTTP_REFERER.
    Во втором и третьем случае он передается не всеми браузерами (Chrome, FireFox выдают ранее загруженный скрипт из кэша; Opera, IE загружают скрипт вновь, но уже без отправки referer).
    В четвертом случае referer не передается ни одним из этих четырех браузеров.
    Если выдавать JavaScript динамически с проверкой наличия заголовка referer в запросе, то мы сразу же защитимся от Opera и IE, но для Crome и Firefox придется придумать что-то позаковыристее. Мы загрузим сначала один скрипт, который в свою очередь загрузит другой скрипт, при этом обе загрузки будем проверять на наличие http-referer. Методом научного тыка установлено, что если динамически создать скрипт на странице document.createElement(«script»), а потом удалить его со страницы, то скрипт будет работать как обычно, но сохраняться он не будет.Практикаnojs.php Эта страничка несет в себе цель загрузить script1.php
    Найди JS Через 10 секунд Вы должны увидеть работу скрываемого скрипта в виде аллерта нажмите ссылку после алерта, дабы убедиться что события тоже не отвалились. По этой ссылке можно увидеть скрываемый скрипт script1.php Его задача: динамически загрузить script2.php, если есть заголовок referer. Таймауты можно уменьшить, в зависимости от примерного времени выполнения скрываемого скрипта.
    script2.php Его задача: выдать конечный скрипт, если есть заголовок referer
    Итоги В итоге мы получаем, что мы не можем ни посмотреть в исходном коде страницы, ни скачать, ни сохранить скрываемый скрипт средствами тестируемых четырех браузеров. Вообще же можно посмотреть его двумя способами:
    • Переход по ссылке прямо ведущей на script2.php и расположенной на странице нашего сайта;
    • Формирование http-запроса с указанием в нем заголовка referer.
    Повысыть эффективность скрытия можно такими методами:
  • С помощью mod-rewrite заменять идущие к серверу script1.js и script2.js на script1.php и script2.php соответственно, чтобы на странице были всем привычные файлы js, так как php резко бросается в глаза;
  • Сделать фиктивный скрипт максимально сложным, правдоподобным и запутанным, чтобы человек пытающийся его разобрать изрядно помучался перед осознанием того, что его обманули;
  • Обфускация кода.