Задать вопрос
Ответы пользователя по тегу PHP
  • Как защитить от спама формы landing page без капчи?

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

    Wohlstand
    @Wohlstand
    Инженер-программист С++
    Обязательно:
    * Установить и настроить SUExec, и желательно настроить так, чтобы папка сайта (например, "Public_HTML" или "www", или site1/www, site2.www, etc.) была в хомяке зверя (по SFTP удобнее будет лазать)
    * Каждый зверь должен иметь свой UNIX-аккаунт и регу на MySQL-сервере (каждому одну или несколько базок)
    * Желательно собрать php из исходников и запускать через CGI (SUExec работает только на CGI), можно юзерям назначать INI-файлы индивидуально (например, включать/выключать определенные модули)

    Что на счёт самих CMS, средствами OS можно лишь назначить владельцем рута и штатные CMS-ные файлы сделать "только чтение". Тем самым изменять файлы самой CMS не получится ни у кого, а вот использовать - на здоровье. Только один минус: теряется возможность автообновления, потребуется рут, чтобы заменить такие файлы. На стороне MySQL от аварии не спасёт если один из плагинов коряво попытается изменить одну из существующих таблиц (тем самым испортив её), а не добавить новую, для себя.
    Ответ написан
  • Какие самые печальные/курьезные по последствиям баги в вашей практике (или о которых знаете)?

    Wohlstand
    @Wohlstand
    Инженер-программист С++
    Очень тупой и назойливый баг в инсталяторе моего движка: вместо того, чтобы добавить в конец, инсталятор перезаписывал переменную PATH, из-за чего у многих из-за этого начались страшные глюки на компьютерах, случайно нашёл как протестил инсталлер на компьютере друга, потом заметил, что xcopy не работает. (К счастью на лине не всё так просто испортить, поэтому в линуксовых ти макосных сборках проблем не было.)
    Ответ написан
    2 комментария