Как работает admin-ajax.php?

14

У нас возникли проблемы с внешним разработчиком.

Мы хотим ограничить доступ к wp-adminсайту только внутренним доступом (через VPN ). Просто так он не будет атакован внешними пользователями. Мы можем перечислить администраторов с сайта и не хотим, чтобы они были фишинговыми.

Наш разработчик говорит, что мы не можем этого сделать, потому что сайт должен иметь страницу администратора, доступную извне, чтобы страница функционировала. конкретно admin-ajaxстраница.

Что делает admin-ajax.phpстраница?

Он находится в разделе администратора WordPress. Доступ к нему не аутентифицирован конечными пользователями? Это небезопасная практика, чтобы сделать это доступным для внешних пользователей?

Ник
источник
ajax-admin.phpобрабатывает .. запросы ajax. Пожалуйста, очистите свой заголовок и вопрос в целом, wordpress.stackexchange.com/faq
Wyck

Ответы:

6

admin-ajax.phpявляется частью WordPress AJAX API , и да, он обрабатывает запросы как из бэкэнда, так и из front. Постарайтесь не беспокоиться о том, что оно есть wp-admin. Я думаю, что это тоже странное место, но само по себе это не проблема безопасности. Как это относится к «перечислению админов», я не знаю.

s_ha_dum
источник
Вы бы порекомендовали перенести страницу администрирования wp из внешнего доступа? и знаете ли вы, что это нарушит работу администратора ajax?
ник
Я не уверен на 100%, что это значит, но если вам требуется, чтобы доступ к файлам wp-adminбыл с IP вашего VPN, то да, это должно испортить AJAX. Вызовы AJAX поступают из браузера пользователя, поэтому поступают с IP-адреса пользователя.
s_ha_dum
1
Можете ли вы объяснить, почему, в частности, это не проблема безопасности для нас, n00bs? В противном случае достойный ответ.
Daaxix
3

Для неаутентифицированных и ненадежных пользователей вам нужно сделать два конкретных исключения для вашего VPN / Firewall / Apache .htaccess:

  • example.com/wp-admin/admin-post.php
  • example.com/wp-admin/admin-ajax.php

Это две автоматические конечные точки, которые часто используются как внутренним WP, так и различными плагинами.

Вот некоторые объяснения того, что admin-post.phpделает:

admin-ajax.phpработает очень похожим образом, и полезное объяснение здесь .

ХАЗ
источник
2

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

У нас 40 штатных сотрудников и 4 разработчика, пытающихся время от времени использовать vpn, и он просто заикается, и при этом всем пользователям теперь требуется два набора паролей, один для wp и один для vpn, и это не просто общий пароль, а отдельные. Я имею в виду, как еще вы сделали бы аудит безопасности. Достаточно сложно запомнить один безопасный пароль, не говоря уже о двух.

Добавьте к проблеме, что многие люди не знают, как использовать VPN и часто это просто вызывает больше проблем.

В конечном счете, это ужасная идея, и ее часто выдвигает руководство или высшее руководство, которое не знает или не понимает WordPress. Они видят это в ужасном свете, что, поскольку это открытый исходный код, это также должно быть проблемой безопасности, наполненной легко используемыми эксплойтами и т. Д.… Оно стареет.

WordPress безопасен и придерживается wp-admin за vpn - это не только распространение страха, но и кошмар для каждого члена команды.

Почему типы управления не доверяют WordPress, они забывают, что основные сайты используют WordPress и не используют vpns, посмотрите на mashable, например.

Итак, резюмируем:

Аякс не будет работать за VPN.

Vpn - ужасная идея по причинам, упомянутым выше

WordPress безопасен и останется таковым, если вы сохраните его и плагины в актуальном состоянии.

Слушайте своего Dev, вы платите им за их опыт. Я могу пообещать вам, что ничто не подрывает рабочие отношения, например, не доверяя человеку и не проверяя его знания.

Если вы заходите с vpn, обязательно купите достаточно пользовательских лицензий.


источник
11
У меня пока недостаточно очков, чтобы вас понизить, но я бы сделал это, если бы сделал. Вы говорите о том, что доверяете своим разработчикам, но нигде не говорите: 1) что он делает, или 2) почему это нормально в wp-admin. Я не впечатлен этим ответом.
Daaxix
Уязвимые плагины могут быть использованы с admin-ajax.php в зависимости от того, как разрабатывается плагин. Многие плагины не проходят статический или динамический анализ кода для тестирования уязвимостей. Ядро WordPress также постоянно исправляет уязвимости. Если вы будете следовать рекомендациям по безопасности WordPress, которые включают в себя усиление защиты, например ограничение wp-admin, поддержание актуальности всего и ограничение устанавливаемых плагинов, ваша экспозиция будет более ограниченной. Однако вы не на 100% защищены.
Tacotuesday
2

Если вы хотите ограничить доступ к бэкэнду WP (например:) wp-admin, просто используйте .htaccessправило для wp-adminкаталога.

Проверьте эту статью для общего обзора: Защита паролем каталога с помощью .htaccess

Также проверьте эту тему для вашего конкретного случая: Защита паролем / wp-admin /

skim-
источник
1
Или, если вы предпочитаете делать это по IP: betterwp.net/wordpress-tips/protect-wordpress-wp-admin-folder
skim- 27.12.12