
Кошерная передача данных через web-форму.
Самые популярные товары с Али по лучшей цене:
Мужской кошелёк с RFID-блокировкой 427 руб.
Брендовая карта памяти Lexar на 32Gb 358 руб.
Мужские носки, 5 пар за 458 руб.
Кошерная передача данных через web-форму.

Всякую сущность
Вести к совершенству -
Вот путь самурая.
Первый уровень абстракции.
Однажды местному автору понадобилась функция управления Вселенной из любого места и с любого устройства. Грубо говоря, через заурядный браузер. Как-то ещё проще придумать не получается. Но, поскольку страшно даже представить, какая беда случится, если в интерфейс управления Вселенной попадёт кто ни попадя, здесь требуется надёжная защита от несанкционированного доступа.
По сути проблемы как бы и нет, всё давно придумано до нас. Всевозможные мерчанты, знакомые нам с детства, предлагают передаваемые данные подписывать приватным ключом, дополняя результат хэшем от ключа и данных. Ну а уж Вселенная всё это проанализирует, и решит, воспринимать полученную команду, или проигнорировать. Простая и понятная валидация.
Которая, тем не менее, подразумевает общение со Вселенной через клиента. Кто-то же должен хэшировать данные с «солью» в виде приватного ключа, микшировать хэш и данные, и отправлять дальше. А вот клиент тут как бы и не нужен, всё должно быть просто. И чего с этим делать?
Понятно, что русского человека не смутить предложением полюбоваться красотой заката во время восхода. Ибо у русского человека вообще весь жизненный путь соткан из тончайшей паутины противоречий, и щедро намазан вазелином условностей. Только дай слабину - и под ногами разверзнется бездна афедрона, из которого уже не выбраться.
Поэтому русский человек быстро смекает, что к чему.
Например, любая Панель управления обычно представляет собой форму с полями и кнопками. Вебмастера очень любят навешивать на формы библиотеки типа jQuery для валидации, оформления, и прочей анимации. Вот и будем грузить в нашу Панель управления Вселенной jQuery прямо с серверов Гугла, и применять ту библиотеку к форме.
Для стороннего наблюдателя это имеет смысл. Действительно, Панель красива, любой кусок HTML в её коде целесообразен, и сама Панель вроде бы взаимодействует со Вселенной. Хотя на самом деле нет.
Потому что на компе, с которого действительно осуществляется управление Вселенной, поднят локальный Web-сервер с собранным в ней доменом Гугла, единственное назначение которого - подсунуть в нужном URL-е под видом jQuery «правильный» скрипт.
Он считывает из отправляемой формы значимые поля, берёт от данных в этих полях хэш по md5 или SHA алгоритму, использует приватный ключ, и дополняет отправляемые данные этим хэшем. То есть в совершенно фоновом режиме подписывает данные формы электронной подписью. Если это можно так назвать.
Как бы да, формально никакого клиента у собеседника Вселенной нет. Простой браузер. Но любая достаточно развитая технология внешне неотличима от магии - Вселенная будет слушаться только этого юзера, и никого более. Потому как русская хитрость, а не лаптем щи.
Но то было лишь предисловие.
Ущербный WEB.
Покорив и обуздав Вселенную, местный автор вдруг осознал, что функционал наших сайтов устроен довольно примитивно. Оно и понятно, почему. Всякие формы обычно статичны, ибо построены на голом HTML, и лишь их обработчик имеет IQ больше нуля. Именно поэтому все эти формы и не кошерны, если уж положа руку на сердце.
Так, местный автор, как Вы можете догадываться, зарегистрирован во тьме партнёрок. Но ему лениво записывать в специальном месте триединую сущность (морда сайта, логин, пароль). Местный автор просто берёт ту триединую сущность, и пишет код формы авторизации с уже заполненными полями.
Теперь достаточно просто запустить htm файлик с этой формой. Она автоматически засубмитится специальным оператором на Джаве, и в окошке откроется сайт в уже авторизованном состоянии. Это удобно, но сильно настораживает.
Будете смеяться, но даже наикрутейшие конторы, к которым на сраной козе не подъедешь, пускают внутрь себя вот так. Они не проверяют даже элементарного, хотя бы источник данных. А потому их можно брутфорсить чем угодно. Эти конторы даже про CSP не слышали...
Чуть менее ущербный WEB.
Вместе с тем любую форму можно сделать не столь тупой, каковой она идёт «из коробки». Каждый может над ней изгаляться, как умеет, но местному автору подумалось вот в какую сторону.
Давайте внимательно посмотрим на форму. Если в ней кардинально ничего не менять, то простора для творчества совсем мало. У полей формы можно оперировать только именем этих полей. Но зато как!
Например, если вместо имени поля формы писать хэш от этого имени, а также идентификатора пользователя, серверного времени, какого-то ключа, обычно именуемого «солью хэша», то нарисуется благостная картина.
Во-первых, у формы больше нет предопределённых имён полей. Каждый раз имя каждого поля (чекбокса, кнопки) новое и непредсказуемое. Всякий спамерский софт, обрабатывающий формы по шаблону, озадачивается уже на этом этапе.
Во-вторых, поле формы теперь несёт в себе информацию о времени своего рождения. Обработчик формы может сверить его с текущим, и принять какое-то решение.
Например, если форма родилась, была заполнена и отправлена всего за полторы секунды, а в форме четыре обязательных к заполнению поля, которые никак не забить буковками и циферками за столь малый срок, то зовут тебя Хрумер, и фиг тебе, а не реакция на твоё действие.
Или наоборот. Прошло слишком много времени с момента создания формы.
Скорее всего, это попытка какого-то хака, так что данные тоже не принимаем.
В-третьих, теперь передаваемые через форму данные дополнительно привязаны к идентификатору пользователя, и ими нельзя свободно манипулировать. Если одной из составляющих идентификатора является айпишник пользователя, это автоматически порождает повышенный иммунитет к технологиям перехвата данных. Сама форма примется только с конкретного айпишника пользователя.
В общем, возможны некоторые ништяки, на уровне кода обретаемые довольно простым образом. Конечно, это будет не высокий программинг уровня управления Вселенной, и даже не криптография, но на порядок лучше, нежели было изначально в виде голого HTML без никаких суперменских способностей.
А что на проверку?
С этого момента местный автор пишет свои скрипты только с включением означенной выше технологии. Несмотря на отсутствие капчи, хрумер формы не пробивает, да и прочий спам отсутствует. Попытки есть, все они логируются, но безуспешны. Технология вполне рабочая и действенная. Причём совсем простая...
Другие статьи категории «Былое котоламповое»
Если Ваша переписка не для чужих глаз. Реалии жизни.

Параноидальная система тикетов от Lasto.

№ 2Собиратели паролей
Смогу ли я тогда зайти в свою обитель?
№ 3Форма авторизации
1. в разметке формы добавляем поля со стандартными именами login/password
2. скрываем их и disable'им
3. на стороне сервера - если !empty хоть одно из них - банить бота с первой же попытки
Ну и как бы нафиг надо, ибо против брутфорса работает другой механизм.
Тем паче, что методика копипаста перешла на новый уровень - существуют библиотеки, понимающие, какое поле скрыто, какое торчит в странице видимым образом. Все эти зловредные боты никогда не пишутся с нуля, они тупо собираются, как конструктор, из таких вот библиотек. Так что все эти пионерские хитрости давно не актуальны.
И да, есть много сервисов типа "введите URL страницы и получите её в виде PDF". Они тоже используют ровно те же самые библиотеки, и в PDF-е на выходе сервиса вы не увидите скрытых полей.
Бот их тоже заполнять не станет :)
№ 4Накуренные ишаки
№ 5Мастер предполагает неверно, ИМХО.
Замечено, что когда комментарий содержит выжимку ошибок и написан с долей наглости, писавший его - не совсем имбицил. Вот же... природа отдыхала только некоторое время, видимо.
Посему местному автору желаю не обращать внимание на проплывающий труп врага, да созерцать лишь достойные высказывания.
Низкий поклон, Вадим Николаевич за Нанку и её реинкарнацию. Для себя увидел множество возможностей и путей реализации задуманного. Честно, не ожидал такого подарка.
Да и глаза округлились от способа защиты из поста, всяко Мастер - тот ещё затейник. Интересно, что последует за...
По теме:
Не хватает только user'ов в админке Nano-CMS, которым доступно только редактирование полей формы(title, content, ) в определённых папках, без доступа к изменению файлов php.
Но это решаемо правильным программированием без доступа к папкам и одним файлом редактора. Кто бы написал только... :)
№ 6Почти велосипед
Например в Laravel (такой фреймворк) уже давным давно есть CSRF-защита. Она призвана пропускать POST-запросы только с сайта на котором сгенерирована форма. И даже проверяет время формирования хэша и время отправки запроса. И если перерыв существенен, то кидает ошибку.
А если ещё посмотреть в сторону уязвимостей mysql инъекций...
Используйте изначально эффективные и правильные инструменты для разработки и будет вам счастье.
Интересно, как местный автор относится к Laravel?
Проверку источника формы он юзал ещё 12 лет назад.
Для всего остального фреймворк не нужен.
Достаточно несколько десятков строк кода.
Про велосипед можно разные слова говорить, но на уровне зелёной (дубовой войсковой, а потому самой правильной) логики, собственноручно написанное решение завсегда понятнее, чем чуждый сознанию фреймворк, неведомо, как работающий.
Звучит кощунственно, но если провести аналогию между чуждым сознанию фреймворком и всякими там Джумлой с Вордпрессом, которые ломают, только шум стоит, то юзать велосипед поспокойнее будет.
№ 8Хорошая, однако, штуковина... Наверное.
Кому это всё не надо, тот блюдёт традицию.
Ограничиваясь одной штукой.
Вообще, данная реинкарнация (впрочем, это больше похоже на новую сущность) Наны, как мне, чуть полазив внутри, видится, поинтереснее будет, чем предыдущая. Даже просто для рядового пользователя, не влезающего слишком сильно во всякие подробности. Возможностей больше, удобнее как-то всё, проще для понимания и использования. Не имею ввиду админку. Это мне как раз по барабану - буквы пишу быстро, что русские, что нерусские, с разметкой породнился давно... Всё остальное там лучше, и сильно лучше, на мой взгляд. Поставлю для начала на не очень коммерческий сайт, который легко переделывается. Буду мучить.
Для полного счастья бы ещё те же варианты дизайна... Лень же, блин, колонки двигать! Будет такое, аль нет? Ведь есть уже, как вижу на сайте авторском.
Что украл, то и позаимствовал.
Каждый свою чебурашку сам причёсывает.
Хоть по шерсти, хоть против - как душе угодно.
Кстати, мне думается, что мастер как-то уж слишком сильно недорого оценивает свои программные продукты. Понятно, что контингент ими пользуется весьма специфический. Но, не один же я вижу красоту решений, в конце-то концов! А ведь никого особо не удивляет плата за вход в музей. За что мы там платим? А доход с похода в музей какой? А тут вполне себе доходный доход имеется. С той же Наны, например. А решениями очень даже можно любоваться. Безотносительно к возможности применения даже.
Недавно шёл по рынку и увидал низкий дубовый табурет. Он мне нафиг был не нужен! Но так хорошо был сделан!!! Крутил, вертел, искал что-нибудь, что не понравилось бы. Не нашёл. Ну и... А куда деваться? Так и со скриптами местного автора происходит. А табурет подарил потом хорошему человеку.
Любоваться на его решения можно бесплатно.
На какие-то специфичные функции - через музей.
Всё как обычно.
Не можно же старую собаку научить новым трюкам...
Хоть некоторое осознание и имеется, что сия инфа не совсем для чайников, но все же: если бы воочию взглянуть на то, как оно работает, то, глядишь и придет таки понимание, зачем оно мне надо?
Хакеры-стажёры уже умеют такие вещи смотреть.
Все прочие пользуют в неосознанном фоновом режиме.
И можно ли понимать под Вселенной хотя бы тот же ваш блог, который любимый искалками?
Нет, под Вселенной понимается что-нибудь более глобальное.
С маржой, линией сопротивления, и прочим онанизмом на борту.