Как встроить код JavaScript в HTML-страницу. JavaScript: Прячем скрипт от посторонних глаз Исходных код скрипта

19.03.2024 Сетевое оборудование

Хотелось ли Вам когда-нибудь спрятать от посторонних людей на своей страничке скрипт, который реализует нереально красивое появление меню или выполнение других действий, которые Вы бы не хотели видеть в скором времени на каждом втором сайте?
Если да, то способ изложенный в этой статье Вам пригодится совместно с обфускацией кода. При этом оговорюсь сразу, что способ не 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 резко бросается в глаза;
  • Сделать фиктивный скрипт максимально сложным, правдоподобным и запутанным, чтобы человек пытающийся его разобрать изрядно помучался перед осознанием того, что его обманули;
  • Обфускация кода.
  • Дисклеймер!

    То, что вы увидите внутри исходника - лютейший говнокод, который желательно не использовать в своих проектах, дабы избежать всех проблем, с которыми когда-то сталкивался я сам. Если вы, конечно же, являясь бессмертным человеком, решились использовать мой код в ваших проектах, то предупреждаю, что я снимаю с себя всю ответственность за его использование и любых возникшие у вас проблемы. Выкладывая ваши разнообразные переделки, если таковые есть, меняйте им название, ибо Police Tools ещё существует и поддерживается разработчиком. Рекомендуется серьезно относится к таким вещам, ибо от Takedown"a никто не застрахован, а защищать авторские права на свой продукт я намерен до конца поддержки данного скрипта. Вопрос с авторскими правами относится не только к публикации на BlastHack, но и на всех площадках в целом. Спасибо за понимание!

    Приятного изучения!

    Добрейшего времени суток, господа LUA"шники . Сегодня, первого января 2019 года, я бы хотел представить Вам полноценный исходный код своего скрипта Police Tools . Дабы люди не побежали создавать свои копии моего детища, скажу, что данная версия является достаточно старой, чтобы её системы перестали представлять опасность для моего основного проекта. Сразу скажу, что я выкладываю этот проект сюда, т.к. хочу помочь людям, которые хотят познать LUA, научиться. Не тупо скопировать код, поменять название и выдать проект за свой, а именно получить знания. Я, как никто другой, понимаю, что такое начинать полностью с нуля, не имея под рукой более менее хорошего примера. Также не стану заявлять, что этот проект прекрасен. Я начал писать его в 2017 году , тогда я сам только начинал заниматься скриптингом на LUA, могут быть ужасные системы.

    Огромная часть кода закомментирована, на неё можно даже не смотреть, мне было лень её вырезать.


    Рекомендую прочитать эту тему полностью, ведь иначе Вы, вероятнее всего, ничего не поймёте, когда откроете исходный код. Готовы читать? Надеюсь, что Ваш ответ положительный. Давайте начнём. ​


    Сам исходник состоит из некоторых, очень сложных для освоения новичкам, вещей:


    ImGUI-окна и оверлеи [ основной интерфейс ]
    Работа с сетью [ асинхронные запросы / обычные HTTP запросы ]
    Работа с INI-конфигами [ настройки скрипта ]
    Работа с многоступенчатыми диалогами [ дополнительный интерфейс ]
    Работа с регулярными выражениями [ lua pattern ]
    Чуть-чуть работы с SAMP LUA.


    А теперь давайте обсудим проблемные части моего исходника:


    Очень запутанный код, т.к. я писал его почти три года, храни его Господь.
    Дофига комментариев, которые по сути не имеют никакого смысла и были пометками.
    Местами огромное кол-во строк вместо одной возможной, но это не критично.


    Если говорить о плюсах, то можно выделить вот что:

    10k чистого кода + ещё 3k иногда полезных комментариев.
    Приватные системы, за которые за некогда выкладывал свои кровные.
    Добротные системы, которые могут послужить исходниками сетевых функций.


    Также упрощу Вам задачу и перечислю интересные функции:

    Автоматическая отыгровка оружия.

    Можно найти в main, комментарий [ WEAPON_FUNCTION_BEGIN ]. ​

    Слегка переделанная система цикличных асинхронных запросов.

    Можно найти через поиск, функция [ loop_async_http_request ]. ​

    Полноценная система внутрискриптового чата на функции выше.

    Можно найти на строке [ 3985 ] или по ключ. слову [ getmsg2.php ]. ​

    Полноценная база данных МВД, сойдет как пример.

    Можно найти на строке [ 8124 ] или по ключ. слову [ cmd_database ]. ​

    Полноценная система внутрискриптового биндера с тэгами.

    Мини MVDHelper, как многие считают, можно найти по всему скрипту.


    Данный исходник использует следующие библиотеки:

    Samp.lua
    dear imgui
    memory
    encoding [ для ImGUI, соответственно ] ​



    Возможно, я ещё дополню эту тему полезной и интересной информацией. Сами понимаете, ночь после нового года всегда сложная. Если я что-то забыл добавить, и вы нашли это в исходнике, то напишите в теме, буду Вам очень признателен. Надеюсь, что я своим исходником смогу помочь хоть кому-то из тех, кто начинает изучать LUA, либо же пытается написать свой первый скрипт. Если у Вас есть вопросы по исходнику, то Вы также можете задавать их в данной теме. Если хотите оставить отзыв, пожалуйста, дерзайте, вся тема в Вашем распоряжении. И ещё раз напомню, начинал писать этот скрипт я, когда сам только учился, поэтому не стоит его сильно критиковать. Все мы люди, все мы совершаем ошибки так или иначе. Огромная просьба, создавайте уникальные скрипты, не стоит повторять за другими, если, конечно, вы не учитесь на чужом примере. Запомните, если у Вас что-то не получается, пробуйте дальше - когда-нибудь обязательно всё получиться, если не сдаваться. Не старайтесь закрывать свой код, пусть люди посмотрят на что Вы способны. Ведь только так Вас смогут признать как человека, который может писать код и не боится его показать. Я понимаю, что я далеко не первый, кто публикует огромный проект, но и надеюсь, что я не последний, кто так делает. Ну а с Вами был на связи Pavel Garson, учитесь и добьётесь всего, чего пожелаете. И да, предоставляю я этот исходник для ознакомления, а не для наглого копирования. Если уж копируйте, то пишите, где взяли. А так спасибо, всего.


    Собственно, думаю, что Вам абсолютно плевать, что я написал выше, вы просто ищите исходник.
    Огромное уважение тем людям, кто прочитал весь текст, который я придумывал после НГ =))


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

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

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

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

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

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

    ... .

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

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

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

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

    То есть так:

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

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

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

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

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

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

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

    Наташа 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 резко бросается в глаза;
  • Сделать фиктивный скрипт максимально сложным, правдоподобным и запутанным, чтобы человек пытающийся его разобрать изрядно помучался перед осознанием того, что его обманули;
  • Обфускация кода.
  • Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

    Исходный код сайта – это совокупность HTML-разметки, CSS стилей и скриптов JavaScript, которые браузер получает от веб-сервера.

    Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

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

    Хранится сайт на веб-сервере, который отправляет страницу по запросу пользователя. Запрос – это ввод URL в строке адреса, щелчок по ссылке или нажатие на кнопку отправки данных в форме. Не важно, на каком языке написаны веб-страницы, включают ли они программную часть. Конечным результатом работы любого серверного алгоритма является набор html-тегов и текста.
    Исходный код страницы – это набор данных, включающий в себя:

    • html-разметку;
    • стилевую таблицу или ссылку на файл ;
    • программы, написанные на JavaScript или ссылки на файлы с кодом.

    Эти три раздела обрабатываются браузером. Для сервера это просто текст, который необходимо отправить в ответ на запрос.

    Зачем нам может понадобиться изучать исходный код

    Все, что мы увидим, мы сможем проанализировать и применить для решения тех или иных задач, которые возникают в ходе работы с сайтом, особенно при его оптимизации. Просмотрев исходный код, мы можем:

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

    Это основные возможности, но на самом деле, умея читать код, вы сможете узнать о странице намного больше.

    Как посмотреть исходный код сайта

    Полностью в том виде, в каком он выложен на сервере, из браузера это сделать не удастся. А вот увидеть всю разметку можно, нажав на странице правую кнопку мыши. Здесь и далее на примере Google Chrome.

    Выбираем опцию «Просмотр кода страницы» и получаем полный листинг в отдельной вкладке.

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

    Как найти исходный код страницы сайта

    Нажимаем на значок меню в браузере. Чаще всего он находится справа и имеет вид трех точек или полосок.

    В разделе дополнительных инструментов выбираем «Инструменты разработчика».

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

    Во вкладке «Source» можно просмотреть содержимое некоторых файлов: скрипты, шрифты, изображения.

    Во вкладке «Security» доступна проверка сертификата сайта.

    Вкладка «Audits» поможет провести проверку выложенного на хостинг ресурса.

    Если расположение панели справа неудобно, можно нажать три точки и поменять его, выбрав желаемый пункт.

    Как посмотреть мета-теги

    Каждый html-документ включает в себя теги структуры. Вот некоторые из них:

  • Html – весь документ.
  • Head – раздел служебных заголовков.
  • Title – заголовок страницы (отображается на вкладке).
  • Body – тело документа.
  • H1-H6 – заголовки текста страницы.
  • Article – статья.
  • Section – раздел.
  • Menu – меню.
  • Div – блок.
  • Span – строка.
  • P – абзац.
  • Table – таблица.
  • Элементы предназначены для логического разграничения разделов на странице, при необходимости они оформляются с помощью стилей. В них размещается текст, который так или иначе виден на странице. Но в теге Head присутствует служебная информация. Для ее указания служат мета-теги. Все что в них записано, предназначено для сервера и поисковых систем.

    Их содержимое другим способом узнать невозможно.

    Обратим внимание на тег Link. С его помощью указываются ссылки на внешние подключаемые файлы. При желании можно увидеть содержимое и сохранить на диск. Для этого наведите указатель на адрес и нажмите ПКМ. Выберите пункт «Open in new Tab».

    В новой вкладке откроется указанный файл, который можно просмотреть или сохранить.

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

    В этом случае удобнее всего открывать страницу на локальной машине. Если необходимо только исправить разметку, стили и скрипты, то это можно делать прямо из папки. Html-код просматривается таким же образом. А вот ошибки кода JavaScript можно увидеть во вкладке «Console». Здесь показывает описание ошибки и номер строки, в которой она возникла.

    Синтаксическую можно увидеть непосредственно в коде. Для этого предназначена вкладка «Source».

    Как посмотреть код конкретного элемента

    Для больших страниц с большим количеством элементов сложно найти нужный код во всей разметке. В таком случае следует воспользоваться специальной командой контекстного меню. Наведем мышь на фрагмент и нажмем ПКМ. Выберем команду «Просмотреть код».

    Откроется то же окно, но с фокусировкой на выбранном объекте.

    Резюме

    Мы рассказали, что такое исходный код страницы. Достаточно освоить элементарные знания HTML и CSS, и пользуясь удобными инструментами разработчика, вы сможете проводить отладку своих собственных html-документов.

    Просмотр кода ресурсов в интернете позволит вам учиться не только на собственном опыте, но и использовать реальные рабочие примеры. А для seo-специалистов будут полезны мета-теги, информация в которых может сказать о сайте многое.