Типичные ошибки PHP программиста

d85a4dec9a3726b734a9ab52dc5c8885[1]Ошибки, подобно этой, часто встречаются на сайтах:
Warning: Use of undefined constant LOCAL_SERVER — assumed ‘LOCAL_SERVER’ in /web/includes/page-definitions.php on line 13

Это одна из стандартных PHP ошибок, которая не только некрасива для глаза пользователя, но еще и потенциально вредящая безопасности сайта. Такие ошибки кода необходимо перехватывать и упорядочивать. Читать далее Типичные ошибки PHP программиста

Атаки на Web-скрипты

e740edde64428a3a3befb6e129c[1]Публикацию статьи о технологии атаки через reverse-ip (lookup-ip) за авторством NSD можно считать началом открытого противостояния администраторов хостингов – и тех, кто желает залезть на смежный сайт соседа. Многие начинающие хостинги вообще не занимаются разделением прав доступа. Затем сисадмин (видимо, после пары тысяч жалоб\дефейсов) прикручивает suphp либо suexec, и какое-то время все работает. Инициатива переходит от одной противоборствующей стороны к другой в ритме выхода нового паблик эксплойта под PHP и выхода патчей. Прошло достаточно времени, чтобы всем, наконец, стало ясно – PHP дыряв, как дуршлаг, и доверять ему нельзя (что, кто-то еще сомневается?). Не сегодня, завтра выйдет адвизори с новым мегабагом, и опять все будут ахать и патчиться – в который уже раз… и уж точно не в последний. Читать далее Атаки на Web-скрипты

Снятие временной блокировки пользователя в WordPress (This account has been locked because of too many failed login).

Account-Lock-Pro-Logo-150x150Если посте множества неверных авторизация WordPress выдает сообщения вида:
ERROR: This account has been locked because of too many failed login attempts. You may try again…

Это означает что вход для этого пользователя временно заблокирован (в моем случае было 23 часа), чтобы снять блокировку нужно уметь доступ к Mysql базе.

Зайти в таблицу #_usermeta

Найти в по полю  meta_key значение theme_my_login_security именно для вашего пользователя (поле user_id) Читать далее Снятие временной блокировки пользователя в WordPress (This account has been locked because of too many failed login).

Обработка проблем загрузки изображений (jQuery)

Отсутствие нужного изображения на сервере отображается на странице весьма броско и обычно портит ее внешний вид. Поскольку jQuery позволяет обрабатывать это событие, появляется возможность заменить отсутствующую картинку на собственное изображение «картинка отсутствует», которое бы подходило по стилю к вашему сайту. Или можно просто убрать не загруженное изображение со страницы: Читать далее Обработка проблем загрузки изображений (jQuery)

Настройка логов в Apache

Одним из кусков пазла веб-сайта являются его логи. Для большинства сайтов анализ трафика является одной из главных задач, а удобство и, в конечном итоге, результаты такого анализа зависят от того, как вы настроили свои логи.

Apache — это одно из самых (если не самое) мощных open-source решений для создания веб-серверов. Возможности ведения логов в Apache как для одного сайта, так и для нескольких доменов очень гибки. Большинство возможностей настройки логов применимы для любой операционной системы, но некоторые из них специфичны только для Unix/Linux. Читать далее Настройка логов в Apache

Вывод ошибок на экран при выполнении скриптов PHP

Многие хостинги сконфигурированы в production-режиме, так что в них совершенно правильно отключен вывод ошибок PHP в окно браузера. Но при разработке зачастую неудобно каждый раз проверять error_log в поисках ошибок. Особенно, когда к хостингу нет доступа через shell. Читать далее Вывод ошибок на экран при выполнении скриптов PHP

Facebook Error – Oauth2 specification states that ‘perms’ should now be called ‘scope’.

По состоянию на 13 декабря 2011, JavaScript SDK теперь поддерживает только OAuth 2.0 для проверки подлинности.

Возможность включения OAuth 2.0 в JS SDK был впервые представлен в июле. Все приложения были даны до 1 октября 2011 для тестирования и миграции. Нужно заменить response.session на response.authResponse . Чтобы обратиться за разрешениями, сейчас пользуем ‘scope’, а не ‘perms’.

Читать далее Facebook Error – Oauth2 specification states that ‘perms’ should now be called ‘scope’.