Дневничок фаната программирования и портала

Здесь отводят душу администрация и посетители сайтов и портала «savesoul.ru→←logovo-tigra.ru». Этот дневник содержит темы (их может создавать только администратор) и комментарии (регистрации не требуют и доступны всем, если только не выключены модератором). Домен savesoul.ru имеет более 10 поддоменов, которые можно с некоторой натяжкой называть отдельными сайтами. Не знаю, приемлете ли Вы такую «натяжку», но когда будете упоминать слово «сайт», не забудьте сказать, какой из поддоменов имеете в виду. Если же ведёте речь о всём сообществе ресурсов в поддоменах, называйте это сообщество не «сайт», а «портал».

К списку публикаций

Как я боролся с собственным яваскриптом в гесте

рубрика: ТРАКТАТЫ, дата и время: 08.01.2022 12:54:29

Решил я в 2003 году встроить кое-какой функционал в свою свежесозданную гостевую книгу (созданную — в смысле написанную с нуля на Перле). А точнее, мне было нужно запоминать никнейм посетителя от одной сессии до другой. Решил сделать это с помощью клиентского скрипта и использовать для хранения данных куки. Я выхватил из какого-то проекта (то ли из «Лотереи Чатов», то ли из какой-то другой части люминоферского сайта, не помню уже всех подробностей) js-файл, в котором хранились функции для работы с куками. И, видимо, опьянённый успехами с обработкой других, но тоже нужных куков Перл-сценарием, не обратил особого внимания на то, что в js-файле функции подшлифованы под работу с переменными, имеющими совсем не те названия, которые нужны были в гесте. Подключил файл. И, естественно, такая конструкция не заработала. Хорошо хоть, что не помешала работе с сеансовыми куками. В те времена у меня не было Перла на локалке (в смысле на моём компе), даже локалки таковой не было. Ибо HTML-файлы я «отлаживал» простым запуском в браузере (название которого не скажу, чтоб не уронить вас в обморок, это сейчас полно браузеров с неплохим уровнем безопасности, а тогда... всплакните на досуге по поводу моего выбора браузера в те годы, хотя, для полного счастья у меня всё-таки имелся ещё и Netscape 6, зачастую показывавший страницы не совсем так, как хотел разработчик). А вот Perl-сценарии приходилось загружать на удалённый сервер и пытаться запускать, а потом ходить на всё тот же сервер за логами, по которым отыскивать ошибки. Когда я слишком увлекался написанием кода в ущерб его отладке, это несколько раз кончалось возвращением к предыдущей редакции скрипта, ибо ошибки вылавливались... да что там, не хотели они вылавливаться, их было многовато для меня одного. Особенно учитывая, что инет у меня тогда был через модемный пул на спаренной телефонной линии. Естественно, когда по второй «половинке» линии кто-то беседовал, приходилось долго ждать. А когда я всё-таки подключался, впору было ждать визита соседа с требованием «вырубай Интернет». А так как, по завету кота Леопольда, следует жить дружно, пришлось подстраиваться под такие весёлые условия. Так, мы, кажется, ушли в сторону от темы. Продолжим. Бросил я искать ошибки в js-файле и оставил всё как есть. Главное, что гостевая работала. Остальное не волновало, а с незапоминаемостью ника от сессии к сессии пришлось смириться. И только недавно (когда именно — можно глянуть своими глазами) я снова занырнул в js-код и окинул его своим взглядом, ставшим гораздо опытнее за прошедшие почти 2 десятилетия и — о, чудо! — сразу же увидел, в чём секрет крокодила. Зубы его (кода-крокодила) я удалил, т.е. JavaScript-код исправил и, после удачного испытания, даже малость усовершенствовал. Теперь, что надо, то запоминается. Меньше «напряга» со вводом имени и так далее, всё как когда-то сделать хотел, теперь сделал. Разумеется, гостевая эти годы не стояла на месте. Но это уже другая история, а я на основе получившегося кода создал генератор гостевых книг, который поможет даже тем пользователям, кто сам написать себе гесту не может. Или не хочет возиться с кодом. Вот такие дела!

Комментарии:

Администратор
09.04.2023 01:41:22
здесь...
Кстати, с яваскриптом (а точнее, с межсайтовым скриптингом) связан другой глюк гостевухи. А точнее, не просто глюк, а самая настоящая дыра. Вставка ника в текст одним щелчком мыши была реализована так, что, пользуясь символом апострофа, было возможно слепить код, который выкрадывал куки. Обычному посетителю это ничем не грозило, а вот админу — да... Правда, сделать такое выкрадывание незаметным было затруднительно. К счастью, никто за период с 2003 года не воспользовался этой дырой, а теперь в странице «Кстати...», новой гостевухе, в FAQ и других скриптах от меня, базирующихся на движке SM GB, дыра устранена. А в публичной версии SM GB, лежащей на сайте Супер-М, дыра пока остаётся, т.к. покамест SM GB как таковая мало кого интересует, больше привлекает к себе генератор гостевых, продуцирующий код. А в сгенерированном коде упомянутой уязвимости уже нет.
Администратор
10.04.2023 19:58:03
здесь...
А вот и в SMGB v2.6 дыры больше нет.

Добавить комментарий

Powered by Antitrue Engine v 4.0 from SM aka AntiGun