Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now
Sign InSign Up

PHP-J

PHP-J

PHP-J Navigation

  • Главная
  • Контакты
Поиск
Задать вопрос

Mobile menu

Close
Задать вопрос
  • Главная
  • Add group
  • User Profile
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Buy Points
Home/ Questions/Q 15331
Next
In Process
goldenapples
  • 0
goldenapplesГуру
Asked: 17 марта, 20222022-03-17T08:11:07+03:00 2022-03-17T08:11:07+03:00In: Wordpress (Вопросы и ответы)

Как заставить форму входа Ajax работать с включенным FORCE_SSL_ADMIN?

  • 0

Я работаю над сайтом, для которого требуется защищенная административная область https, а также безопасная область переднего плана, где будет отображаться личная информация. Я предпочитаю для входа пользователя виджет с поддержкой Ajax, который может отображаться на каждой странице сайта, но я не могу заставить его работать при передаче отправленных данных формы с незащищенных страниц на страницу входа.

Я начал с использования плагина Login With Ajax, который с некоторыми модификациями хорошо работает с SSL по большей части, и он отлично работает при входе со страницы, доступ к которой осуществляется через https… и он также отлично работает, когда FORCE_SSL_ADMIN выключен. Но при попытке войти из виджета на незащищенную страницу с включенным FORCE_SSL_ADMIN не могу получить ответ от сервера.

Существуют ли какие-либо существующие плагины, решающие эту проблему? А если нет, то есть у кого решения? Может быть, защищенная форма, встроенная в iframe, — моя лучшая идея на данный момент… просто думаю, что должен быть более простой способ.

*Редактировать: Предлагая награду*

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

adminajaxloginpluginsssl
  • 23 23 ответов
  • 54 просмотров
  • 0 Followers
  • 0
Ответить
Share
  • Facebook

    23 ответов

    • Лучшие оценки
    • Старые
    • Недавние
    • Случайные
    1. janfabry Гуру
      2022-03-17T08:11:45+03:00Добавлен ответ 17 марта, 2022 в 8:11 дп

      Итак, у вас есть незащищенная страница, на которой вы отображаете форму, которая будет отправлена ​​​​на безопасную страницу? Проблема здесь в том, что злоумышленник может изменить вашу незащищенную страницу входа, чтобы форма входа отправлялась на его собственный сервер и, таким образом, получала всю информацию для входа и пароля.

      • 0
      • Reply
      • goldenapples Гуру
        2022-03-17T08:12:19+03:00Replied to ответ 17 марта, 2022 в 8:12 дп

        Да, в качестве модели того, что я надеялся сделать, я смотрел на традиционный банковский веб-сайт, где есть безопасная форма входа, встроенная в качестве src iframe на страницу, которая не обязательно защищена. После прочтения вашей ссылки и других критических замечаний по безопасности, таких как (эта) [ my.opera.com/yngve/blog/show.dml/281609], я думаю, что согласен с тем, что это не обязательно хорошая идея. Но я все равно оставлю свою награду, пока не выясню, как заставить ее работать.

        • 0
        • Reply
      • janfabry Гуру
        2022-03-17T08:12:55+03:00Replied to ответ 17 марта, 2022 в 8:12 дп

        Небольшой совет по редактированию: для встраивания ссылок вы делаете это наоборот, поэтому он становится [link text](link destination) .

        • 0
        • Reply
      • dgw Учитель
        2022-03-17T08:13:30+03:00Replied to ответ 17 марта, 2022 в 8:13 дп

        Жаль, что src iframe может быть изменен на незашифрованной главной странице. Безопасность… Не могу с ней жить, не могу без нее.

        • 0
        • Reply
      • goldenapples Гуру
        2022-03-17T08:14:26+03:00Replied to ответ 17 марта, 2022 в 8:14 дп

        Если кому-то удастся получить контроль над некоторыми серверами имен и подделать мой сайт… думаю, это не в моей власти. Конечно, я думаю, они также могут подделать сертификат безопасности. Я не использую один из сертификатов расширенной проверки, а просто стандартное шифрование «синяя полоса».

        • 0
        • Reply
      • goldenapples Гуру
        2022-03-17T08:15:36+03:00Replied to ответ 17 марта, 2022 в 8:15 дп

        Я прочитаю эти заметки и посмотрю, помогут ли они мне. Это единственное, в чем я не уверен… не совсем уверен, почему это необходимо и соответствует ли действие wp-login.php redirect_to этому описанию: безопасный URL-адрес, на который отправляется форма, всегда должен возвращать перенаправление 302 вернуться к незащищенному URL-адресу.

        • 0
        • Reply
      • dgw Учитель
        2022-03-17T08:16:12+03:00Replied to ответ 17 марта, 2022 в 8:16 дп

        Возврат пользователя к незащищенному URL-адресу в результате формы POST, вероятно, связан с тем, чтобы избежать сообщений «страница содержит как безопасные, так и небезопасные элементы» от браузера и / или обеспечить возможность вызова parent.handleLogin() функции или ее эквивалента. (Я не могу легко найти информацию о том, как работают вызовы JS с защищенной страницы на незащищенную страницу.)

        • 0
        • Reply
      • kaiser Гуру
        2022-03-17T08:16:49+03:00Replied to ответ 17 марта, 2022 в 8:16 дп

        @dgw ПРЕДОСТАВЛЕННАЯ ССЫЛКА БОЛЬШЕ НЕ РАБОТАЕТ. Извините за крик — просто чтобы предупредить последующих читателей. Одна из причин, почему ссылки не должны быть ответом. Пожалуйста, всегда добавляйте содержание ссылок к вашему вопросу.

        • 0
        • Reply
      • dgw Учитель
        2022-03-17T08:17:25+03:00Replied to ответ 17 марта, 2022 в 8:17 дп

        Более поздние читатели обнаружат, что ссылка больше не работает сама по себе, не так ли? Я не уверен, что кричать было необходимо. Все равно похоже на временную ошибку.

        • 0
        • Reply
      • goldenapples Гуру
        2022-03-17T08:18:34+03:00Replied to ответ 17 марта, 2022 в 8:18 дп

        Вау, эта презентация была невероятно полезной и тщательной… Тем не менее, она не помогла мне решить мою проблему. Что вы имеете в виду о разнице между http и https? Где всплывает проблема?

        • 0
        • Reply
      • goldenapples Гуру
        2022-03-17T08:19:39+03:00Replied to ответ 17 марта, 2022 в 8:19 дп

        Хм… это вполне может быть моей проблемой. Я попробую и отчитаюсь. Спасибо!

        • 0
        • Reply
      • kaiser Гуру
        2022-03-17T08:20:14+03:00Replied to ответ 17 марта, 2022 в 8:20 дп

        @goldenapples Итак: Как дела?

        • 0
        • Reply
      • goldenapples Гуру
        2022-03-17T08:20:50+03:00Replied to ответ 17 марта, 2022 в 8:20 дп

        @Кайзер Ха. Я отказался от попыток войти в систему Ajax, это казалось ненужным усложнением. Просто предоставил ссылку на страницу входа через HTTPS. Я думаю, мне следует попробовать еще несколько предложений здесь, чтобы я мог хотя бы принять ответ здесь для других людей. Вернёмся к этому.

        • 0
        • Reply
      • tobiasbeuving Новичок
        2022-03-17T08:21:42+03:00Replied to ответ 17 марта, 2022 в 8:21 дп

        @goldenapples Вы пробовали мое решение здесь? Пользуюсь много лет без проблем…

        • 0
        • Reply
      • goldenapples Гуру
        2022-03-17T08:22:51+03:00Replied to ответ 17 марта, 2022 в 8:22 дп

        Извините, я знаю, что этот вопрос немного выходит за рамки этого сайта… но именно поэтому я наградил его. И я не зацикливаюсь на использовании какого-либо конкретного плагина, просто из всех плагинов входа в систему Ajax, которые я смотрел, этот оказался наиболее развитым и должен был потребовать наименьшей работы, чтобы добраться туда, где он мне нужен. Вот некоторые детали:

        • 0
        • Reply
      • goldenapples Гуру
        2022-03-17T08:23:16+03:00Replied to ответ 17 марта, 2022 в 8:23 дп

        Действие формы задается site_url(‘wp-login.php’, ‘login_post’), а отправка Ajax извлекается из действия формы после вызова event.preventDefault(); Таким образом, оба они указывают на URL-адреса https, когда FORCE_SSL_ADMIN включен. Таким образом, URL-адрес действия формы не является проблемой.

        • 0
        • Reply
      • denisdebernardy Гуру
        2022-03-17T08:23:51+03:00Replied to ответ 17 марта, 2022 в 8:23 дп

        Мм… В таком случае ваш подход к кадру, вероятно, правильный. Я предполагаю, что вы сталкиваетесь с проблемами, связанными с моделью безопасности браузера, также известной как WP, которая пытается установить безопасный файл cookie в незащищенном домене, другими словами, файл cookie на странице с другой схемой/доменом (не указать путь, поскольку он устанавливается для wp-admin).

        • 0
        • Reply
      • denisdebernardy Гуру
        2022-03-17T08:24:17+03:00Replied to ответ 17 марта, 2022 в 8:24 дп

        Кстати, пробовали ли вы играться с доменами cookie и определяет путь к файлу cookie администратора (см. файл wp-settings.php)? Если проблема связана с моделью безопасности браузера, это может помочь, заставив их всех перейти к корневому пути сайта. (По очевидной цене в безопасности.)

        • 0
        • Reply
    2. dgw Учитель
      2022-03-17T08:15:02+03:00Добавлен ответ 17 марта, 2022 в 8:15 дп

      Есть способы сделать это; вот так например. Я предполагаю, что Login With Ajax не использует все методы, описанные в этой статье, и некоторые функции безопасности браузера блокируют его. Попробуйте связаться с разработчиком и предложить улучшения, указав на эту статью.

      • 0
      • Reply
    3. bueltge Гуру
      2022-03-17T08:18:00+03:00Добавлен ответ 17 марта, 2022 в 8:18 дп

      Разница WordPress для hhtp и https и когда вы вызываете AJAX с функциями WP по умолчанию, возможна форма регистрации AJAX. Возможно, вы видите форму плагина из этого руководства: http://www.wpajax.com/code/ Я думаю, что это решение для вас.

      • 0
      • Reply
    4. tobiasbeuving Новичок
      2022-03-17T08:19:05+03:00Добавлен ответ 17 марта, 2022 в 8:19 дп

      У меня была аналогичная проблема, и оказалось, что все зависит от того, как wp_signon( $credentials, $secure_cookie ) была вызвана функция.

      Я хочу, чтобы все на моем сайте было https после входа в систему, поэтому незащищенный файл cookie бесполезен.

      В моем коде до ssl было: wp_signon($credentials, false)

      поэтому я изменил:

      wp_signon( $credentials, false )
      

      к

      wp_signon( $credentials, true )
      

      Что создает безопасный файл cookie, и теперь все в порядке.

      Я могу представить, что разработчики плагинов пытаются FORCE_SSL_ADMIN установить безопасный файл cookie, попробуйте использовать его wp_signon( $credentials, false ) в вашем случае. Я надеюсь, что это решит проблему.

      • 0
      • Reply
    5. denisdebernardy Гуру
      2022-03-17T08:22:18+03:00Добавлен ответ 17 марта, 2022 в 8:22 дп

      Не смотрел на плагин, но я предполагаю, что он жестко кодирует URL-адрес входа без https в запросе Ajax. Форма входа в wp отлично работает в своей версии без https вместе с действием формы, настроенным на использование https, поэтому я действительно не понимаю, почему Ajax не работает.

      Если смена плагина невозможна, вы можете попробовать следующие подходы:

      Можно было бы использовать jquery на хуке wp_footer. Найдите идентификатор формы входа и измените ее URL-адрес, например:$(ID).attr('action', newValue);

      (Однако мне не 100, это сработает, поскольку я смутно припоминаю, как jquery кашлял на теги формы при изменении метода или действия формы.)

      Второй подход, если URL-адрес появляется в HTML-коде формы входа, но не в ее вызове Ajax, состоит в том, чтобы запустить выходной буфер на wp_head и str_replace() URL-адрес.

      Третий подход, если фактический URL-адрес отображается в сценарии js в качестве параметра, заключается в переопределении его значения в wp_footer, как это делается в плагине auto-thickbox для URL-адресов изображений, используемых в wp.

      Последний вариант, если сценарий представляет собой беспорядочный спагетти-код с URL-адресом входа, жестко закодированным в вызовах функций, — удалить его из очереди с помощью wp_dequeue_script() и поставить в очередь свою собственную версию для его замены. Помните о приоритетах, если вы делаете это: ваше wp_print_scripts действие, очевидно, должно происходить после действия плагина.

      • 0
      • Reply
    6. kristofdebuysere Новичок
      2022-03-17T08:24:49+03:00Добавлен ответ 17 марта, 2022 в 8:24 дп

      У меня была аналогичная проблема с плагином AJAX.

      После предложения на https://stackoverflow.com/questions/6301076/wordpress-single-page-ssl добавил это в файл wp-config.php:

      if( !empty($_SERVER['HTTPS']) ) {
      define( 'WP_SITEURL', 'https://yourdomain.com' );
      define( 'WP_HOME', 'https://yourdomain.com' );
      }
      

      Затем я заставил конкретную страницу (с помощью AJAX) быть только https:// (для этого есть плагины).

      • 0
      • Reply

    Оставить ответ
    Отменить ответ

    You must login to add an answer.

    Forgot Password?

    Need An Account, Sign Up Here

    Sidebar

    Ask A Question

    Stats

    • Questions : 7k
    • Answers : 38k
    • Best Answers : 4k
    • Users : 5k
    • Popular
    • Answers
    • netconstructorcom

      Лучшая подборка кода для вашего файла functions.php [закрыто]

      • 100 Answers
    • MikeSchinkel

      Объективные рекомендации по разработке плагинов? [закрыто]

      • 84 Answers
    • EAMann

      Как легко перенести установку WordPress из стадии разработки в рабочую ...

      • 60 Answers
    • LeighaPlone
      LeighaPlone added an answer [url=https://casino-online-slots-real.com/]free slots games[/url] lady luck hq slots 19 августа, 2022 at 7:32 дп
    • Karenfreva
      Karenfreva added an answer [url=https://loans-online-apply.com/]loans online[/url] payday loans [url=https://youloan24.com/]payday loans online[/url] online loans [url=https://loanstoonline.com/]loans[/url]… 19 августа, 2022 at 7:32 дп
    • Karenfreva
      Karenfreva added an answer [url=https://loans-online-apply.com/]small loans[/url] payday loan [url=https://youloan24.com/]loans online[/url] payday loans online [url=https://loanstoonline.com/]payday… 19 августа, 2022 at 6:43 дп

    Похожие вопросы

    • nmystic

      Как назначить файл по умолчанию в «Внешний вид > Редактор»?

      • 15 Answers
    • billeisenhauer

      Как показать полную публикацию на главной странице

      • 14 Answers
    • atticus

      Создание пользовательских запросов AJAX

      • 16 Answers

    Лучшие участники

    rarst

    rarst

    • 0 Questions
    • 5k Points
    Гуру
    bainternet

    bainternet

    • 0 Questions
    • 5k Points
    Гуру
    janfabry

    janfabry

    • 0 Questions
    • 3k Points
    Гуру

    Trending Tags

    categories comments custom-field custom-post-types custom-taxonomy customization functions images menus multisite pages permalinks php plugin-development plugin-recommendation plugins posts theme-development themes widgets wp-admin

    Footer

    © 2022

    Вставить/изменить ссылку

    Введите адрес назначения (URL)

    Или сделайте ссылку на существующий материал

      Поисковый запрос не задан. Показаны недавние элементы. Воспользуйтесь поиском или клавишами вверх/вниз, чтобы выбрать элемент.