• Как защитить от спама формы landing page без капчи?

    Wohlstand
    @Wohlstand
    Инженер-программист С++
    Как сказал FanatPHP , можно сделать поля-ловушки. У меня немного другой метод, но тоже довольно эффективный:
    - создать НЕСКОЛЬКО полей, таких как "phone", "homepage", "skype" и др (на что фантазии хватит). Они должны быть полноценными полями, не `type=hidden`!
    - сделать их на уровне CSS скрытыми (сделать класс, который их будет скрывать, либо скрывать их по каждому ID-тэгу). По коду эти поля должны выглядеть максимально естественно и не отличаться от остальных. (чтобы человек их не видел, но чтобы их видел бот и думал, что это естественные поля на форме).
    - под капотом, следить за тем, чтобы эти поля были пустыми.
    - если это был бот, он обязательно заполнит эти поля. И если они заполнены, то сделать вид, что всё было успешно, НО, при этом под капотом ничего не делать. Пусть бот тратит время на пустые надежды!
    Ответ написан
    2 комментария
  • Могли бы вы поделиться хорошим техническим заданием на разработку сайта/веб-приложения?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Никогда не видел объемного и всеохватывающего ТЗ. Обычно это макет и куча правок к нему.
    Ответ написан
    3 комментария
  • Нужно ли защищать обработчик формы (PHP файл) от прямого доступа?

    gscraft
    @gscraft
    Программист, философ
    Нет, файл-PHP защищать не нужно, если веб-сервер передает его на обработку PHP-интерпретатору. То есть, если сценарии вообще работают, а не выдается содержимое PHP-файла при запросе по адресу ваш-сайт/action_page.php. Большинство PHP-движков спокойно хранят настройки в PHP-скриптах.

    Однако, если данные очень критичны и есть боязнь сбоя сервера (например, администратор допустит случайную и временную ошибку, открыв доступ к содержимому скриптов, исключив интерпретацию), можете вынести все приватные данные за пределы action_page.php, например, в action_page_handler.php , в свою очередь находящийся за пределами публичной директории, и подключаемый, скажем, как require __DIR__ . '../../scripts/action_page_handler.php'; (и это будет единственная строчка в action_page.php, которую кто-либо когда-либо сможет увидеть).
    Ответ написан
    Комментировать
  • Какой Linux стоит установить для освоения?

    Gentoo, Slackware и Arch — крутые дистрибы для крутых профессионалов. Начинать лучше не с них (и уж тем более не со сборки своего личного дистрибутива из исходных кодов).

    Начинать лучше с дистрибутива, у которого большое сообщество (англ. community). На такие дистрибутивы больше документации, а при обращении на форум больше шансов получить ответ.

    Учитывая вышеизложенное, остаются два семейства:
    • DEB based и
    • RPM based.


    DEB based
    Это Debian и его производные, из коих, пожалуй, наиболее известны Ubuntu и Linux Mint.

    Что касается Linux Mint… Когда пользователь Debian'а хочет задать вопрос, он идёт на форум Debian'а. Когда пользователь Ubuntu хочет задать вопрос, он идёт на форум Ubuntu. Когда же пользователь Linux Mint хочет задать вопрос, он идёт на форум… Ubuntu. Вероятно, среди пользователей Linux Mint трудно найти человека, способного ответить на вопросы о Linux'е.

    Можно сказать, разработчики Debian'а придерживаются принципа «надёжный софт — это многократно проверенный софт». Но разве это не так?

    У Debian'а всегда в наличии четыре варианта системы: oldstable, stable, testing и unstable. Unstable — это по сути ещё не система, а куча разрозненных пакетов; отдельные пакеты из unstable после доработки переносятся в testing. Следующая стадия разработки — testing; это уже́ операционная система, но ещё требующая значительной доработки и исправления критических ошибок. Когда Debian testing достиг некоего уровня готовности, его замораживают. После этого в течение нескольких месяцев работа над ним ведётся в особом режиме: улучшения не принимаются, а принимаются только исправления критических ошибок и уязвимостей. Когда все критические ошибки исправлены, testing становится stable (это бывает примерно раз в два года); предыдущий stable становится oldstable, а предыдущий oldstable уходит в историю (хотя его поддержка продолжается ещё некоторое время). В этот момент stable и testing одинаковы, но testing после этого пару лет улучшают и совершенствуют, в stable же принимают только критически важные исправления.

    Ubuntu основывается на Debian testing (а не stable), что само по себе заставляет задуматься. Новые версии выходят раз в полгода. Сравните: Debian testing становится stable тогда, когда исправлены все критические ошибки, без привязки к конкретным датам; очередная версия Ubuntu выходит в апреле соответственно в октябре независимо от степени готовности.

    RPM based
    Компания Red Hat выпускает Red Hat Enterprise Linux (RHEL) и Fedora. RHEL продаётся за немалые деньги; цена включает подписку на техническую поддержку. Fedora бесплатна, но это тестовая система, служащая испытательным полигоном для RHEL. Из исходных кодов RHEL добровольцы собирают CentOS; по сути это более-менее та же RHEL, но под другим названием и без подписки на техническую поддержку. Сообщество у RHEL, Fedora и CentOS общее.

    Вывод
    Для первоначального знакомства более других годятся Debian stable и CentOS.
    Ответ написан
    1 комментарий
  • Почему SSD загружается на 100% при INSERT в Mysql?

    inside22
    @inside22
    wtfowned возможно у вас в этой таблице слишком много индексом и INSERT запросе индексы начинают обновляться, а этот процесс очень ресурсоемкий.
    Ответ написан
    3 комментария