Jump to content
  • Sign Up
Sign in to follow this  
dron

Нужна форма обратной связи

Recommended Posts

Добрый день. Не сложная работа для специалиста. Нужна простая форма обратной связи, 2 поля, без обновления страницы, с защитой от спама. Типа вот такой: https://webriz.ru/55-zaschita-ot-spama-php-formy-otpravki-dannyh.html

Только нужно чтобы форма была в html файле, а сам скрипт в отдельном js файле.

Плачу 200 руб на карту.

Share this post


Link to post
Share on other sites

У меня есть свой авторский метод защиты, нигде не прочитал, придумал сам, без использования переменной $_GET, только одно скрытое поле. Скрытое поле хранит зашифрованную информацию об ip пользователя и времени когда он открыл форму. Далее, пользователь заполняет форму, посылает ответ, на сервере проверяется 1) что ip совпадает 2) что от отрытия формы до ее отправки прошло допустимое время.

Не используется md5 либо другие библиотечные методы шифрования, все сделано вручную. Стойкость - криптоаналитик взломать сможет, спаммер - нет (даже если постарается, чего он делать конечно же не будет).

Только вот не понятно, как вы предполагаете из html файла вызвать код на PHP? Саму форму и код проверки можно разнести в разные файлы, но они оба будут php (хотя для пользователся можно сделать видимость html через .htaccess)

Share this post


Link to post
Share on other sites

Ну ладно, раз никто 200 рублей на карточку перевести не хочет, берите на халяву, не жалко.

function rgl_mul64($a,$b) {
  for($i=0;$i<8;++$i)$c[$i]=$a[$i]*$b[0];
  for($j=1;$j<8;++$j)for($i=$j;$i<8;++$i )$c[$i] += $a[$i-$j]*$b[$j];
  for($i=0;$i<7;++$i){$c[$i+1]+=$c[$i]>>8;$c[$i]&= 255;}$c[7]&=255;
  return $c;
}

function rgl_cript64($x) {
  $a=Array(157,254,1,223,3,31,128,196);$b=Array(181,119,108,44,75,245,179,97);
  return rgl_mul64($b,array_reverse(rgl_mul64($x,$a)));
}

function to_hidden_string($ip,$time) {
  $t=rgl_cript64(explode('.',$ip.'.'.long2ip($time)));
  return sprintf( '%02X%02X%02X%02X%02X%02X%02X%02X',$t[0],$t[1],$t[2],$t[3],$t[4],$t[5],$t[6],$t[7]);
}

function from_hidden_string($s) {
  if(gettype($s)!='string'||strlen($s)!=16||preg_match('/[^\dA-F]/',$s)) return false;
  $t=rgl_cript64(sscanf($s,'%02X%02X%02X%02X%02X%02X%02X%02X'));
  return Array(join(array_slice($t,0,4),'.'),ip2long(join(array_slice($t,4),'.')));
}

Примечания:

1. Т.к. писалось для себя, комментариев нет (я и так слету все пойму хоть через 10 лет, а большинству и комментарии не помогут). Потому что я не только написал код, но придумал алгоритм.

2. Если функцию rgl_cript64 планируется вызывать более одного раза, возможно, есть смысл два массивчика $a и $b вынести в глобальное пространство, чтобы один раз.

3. Собственно числа в массиве $a и $b можно (и нужно) поменять, это как пароль, его должен знать только тот, кто форму пишет. Числа, разумеется, могут быть не  любыми, но в одном из массивов они могут быть почти любыми (есть минимальное ограничение), ну а второй должен быть подобран к первому. За подробностями в личку.

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

5. Функция to_hidden_string принимает на вход IP клиента и момент времени (напр time() или $_SERVER['REQUEST_TIME'], кому как нравится) когда он запросил форму. Функция from_hidden_string вызывается уже когда клиент заполнил форму и отправил ее. Она обратно извлекает IP и момент времени. Далее можно проверить что IP совпадает а время в допустимых пределах (скажем, прошло не больше часа, можно и не больше суток).

6. Если в скрытой строке изменить хотя бы один любой  битик, весь результат меняется непредсказуемым образом (непредсказуемым для человека, не знающего алгоритм или даже двух ключевых массивчиков).

Share this post


Link to post
Share on other sites

Первых двух функций достаточно для "шифрования" 64-битного числа, ну или массива из 8 байтов (чисел от 0 до 255). Стойкость к взлому более чем достаточная для защиты от спама, но для действительно серьезных вещей - нет. Главное достоинство - если язык не PHP а C на 64 битной операционке (а именно так он изначально и придуман), то его быстрота, ресурсов тратится несравненно меньше, чем на полноценное шифрование, т.к. фунция mul64 превращается в одну операцию умножения.

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

Edited by rgl

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Member Statistics

    46,837
    Total Members
    159
    Most Online
    Мишкин
    Newest Member
    Мишкин
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Спрашивают сейчас

  • Пишут сейчас

    • Как облачные технологии помогают малому и среднему бизнесу экономить   Любой инструмент создают, когда какой-то процесс нужно сделать удобнее, эффективнее, выгоднее. Облака — такой же инструмент. С ними бизнес трансформируется, обретает новую форму и развивается быстрее.   Облака обеспечивают высокую производительность за адекватные деньги. Бизнес, который выбрал облака для решения задач, платит только за то, что использует. В отличие от тех, кто еще работает по старинке.   Давайте разберёмся по порядку.   Бизнес без облачных технологий   Это классическая схема. Так работают многие компании, которые ещё не решились использовать облака.   Представьте небольшой бизнес: 10 сотрудников, каждый из которых работает на своём компьютере и выполняет задачи. Все компьютеры соединены сетевым кабелем в мини-сеть и могут обмениваться между собой информацией.       Ещё где-то на стене висит маршрутизатор, который отвечает за то, чтобы у каждого сотрудника был интернет.   Каждому компьютеру в такой системе требуется:                                  Лицензионные операционные системы и приложения.                                 Периодический ремонт и обслуживание.                                Модернизация при необходимости.   Так каждый компьютер превращается в объект, который регулярно требует вложения денег.   Ещё нужен человек, который постоянно будет в офисе компании на случай, если что-то пойдёт не так. Его функция — быстро прийти на помощь и исправить косяки и поломки, которые возникают в рабочем процессе. Как правило, это штатный ИТ-специалист, которому нужно платить зарплату.     С ростом компании появляются новые рабочие места, оборудование, серверные комнаты. Общий бюджет на содержание и обслуживание оборудования растёт.   Штат ИТ-специалистов тоже растёт. Так появляется новый отдел, сотрудникам которого тоже нужно платить зарплату.     Для малого и среднего бизнеса это нецелесообразно. И этого можно избежать, если начать использовать облака. Чем раньше бизнес понимает это и переносит работу в облака, тем больше получается сэкономить в итоге.   При переходе в облако малый и средний бизнес экономит, а сэкономленные ресурсы направляет на развитие бизнеса.   Бизнес с облачными технологиями   При облачной организации ИТ-инфраструктуры вся информация хранится на виртуальном сервере в облаке, а уже к нему подключены все компьютеры.     Когда бизнес переходит в облако, появляются новые возможности:                                  Использовать старенькие системные блоки в качестве терминалов доступа к облаку.                                Перестать покупать дорогие рабочие станции и новое серверное оборудование.                                 При выходе старых системников из строя покупать недорогие тонкие клиенты.                                 Вычеркнуть из бюджета расходы на содержание и модернизацию оборудования.                                 Перестать тратить деньги на специализированные помещения, электроэнергию.                                 Использовать ресурс ИТ-специалистов для решения задач развития компании.                                 Увеличивать и уменьшать ИТ-инфраструктуру в нужный момент.                                 Организовать мобильную работу сотрудников, сэкономив на офисе.   Некоторые компании боятся переходить облака, только потому, что для них это что-то новое и неизвестное. Но в Украине, как и во всем мире, это уже норма. Как и сопутствующие переходу преимущества.   1.                             Бизнес в облаке платит только за то, что использует. Если требуется увеличить мощность, скорость, производительность или другие характеристики, нужно только сказать об этом провайдеру. Он всё сделает. 2.                             Обновлять или добавлять мощности рабочим станциям не потребуется, потому что теперь вся мощность берётся с сервера. При необходимости её можно добавить или убрать без покупки дополнительного оборудования. 3.                             Если у компании ещё нет ИТ-специалиста, можно доверить администрирование ИТ-инфраструктуры в облаке провайдеру. Это выгоднее, чем нанимать для этих задач отдельного специалиста. Если специалисты в штате уже есть, им можно поручить более серьезные задачи, чем чистить кулеры от пыли и восстанавливать с разной степенью успешности случайно удаленные кем-то из сотрудников данные. 4.                             Облака универсальны. Их легко адаптировать под любые проекты со своим набором характеристик и программ. 5.                             Есть возможность резервного копирования информации и восстановления при необходимости. 6.                             При использовании облаков появляется возможность планировать расходы и избежать спонтанных трат, которые возникают в связи с внезапными неисправностями оборудования в офисе. 7.                             Компании, которые отказываются от облаков и покупают свои серверы в офис, оборудуют серверные комнаты, через 3-5 лет вынуждены обновлять, дополнять или вовсе менять серверы на новые. Это всегда дорого. С облаками этого делать не нужно. При необходимости можно добавить мощности за небольшую плату, но покупать сервер нет необходимости. 8.                             Часто при размещении своего сервера в офисе есть риск, что информация о вашем бизнесе окажется под угрозой. Физические серверы могут изъять или украсть и получить доступ к данным. С облачной инфраструктурой, особенно если облако расположено в зарубежных дата-центрах, этот риск сведён к минимуму. Даже если кто-то получит физический доступ к компьютерам в офисе, не зная реквизитов доступа к облаку, доступ к информации получить не получится. На компьютере её просто не будет. Всё останется на сервере.   У облачных технологий много преимуществ. Для каждого бизнеса есть свои плюсы. Поэтому компании всё чаще отказываются от классической модели инфраструктуры в компании и переходят в облака. Как легко перейти в облако   Чтобы компании убедились в выгодах и почувствовали преимущества использования облаков, мы предоставляет тестовый бесплатный период на 7 дней.   Это хорошая возможность попробовать все функции и примерить решение на свой бизнес.   При этом совсем не обязательно сразу переводить в облако всю компанию. Можно попробовать на филиале, отделе или нескольких сотрудниках.   Закажите тестовую среду или, если у вас есть дополнительные вопросы, задавайте их нашей службе поддержки. Мы работаем для вас 24х7.
    • Воспользуйтесь поиском Google
  • Popular Contributors

×
×
  • Create New...