Если вам удобно редактировать файл functions.php внутри вашего каталога тем, вы можете добавить следующие строки кода:
remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
add_action( 'woocommerce_after_checkout_form', 'woocommerce_checkout_coupon_form' );
Это существенно удалит купон (который подключен до checkout form) и повторно добавить его ПОСЛЕ формы выписки.
В качестве альтернативы вы можете использовать Javascript для «вырезания и вставки» блока html, содержащего поля купона, но это грязный способ кодирования, и я не предложит взять этот маршрут.
Лучший способ защитить Ваш пароль состоит в том, чтобы прекратить использовать тот. Используйте доверительное соединение: Как К: Соединитесь с SQL Server Используя аутентификацию Windows в ASP.NET 2.0. Затем у Вас нет ничего для сокрытия - публикуют web.config и источник к миру, они все еще не могут поразить базу данных.
Если это не будет работать на Вас, используйте созданный в системе шифрования конфигурации в ASP.NET.
простой текст? Если бы они находятся на Вашем сервере, я надеялся бы, что сервер является достаточно защищенным для не предоставления несанкционированного доступа. Если люди могут получить доступ к Вашим файлам конфигурации на сервере, что-то пошло не так, как надо намного ранее.
Я соглашаюсь с lomaxx: если кто-то уже находится на сервере или имеет широкий доступ к нему (как системный администратор), игра в значительной степени закончена. Таким образом, идея состояла бы в том, чтобы использовать сервер, Вы полагаете, что это безопасно до градуса, которым Вы хотите, чтобы это было. Конкретно:
Кроме того, переменные среды, кажется, популярный выбор для хранения этих типов учетных данных, потому что это означает, что доступ к источнику только (например, путем взлома dev поля) не показывает его непосредственно, и также это может быть приятно локализовано для каждого сервера (dev, тест, и т.д.).
разъяснение: с точки зрения безопасности, пригодность для обслуживания (например, если вход в систему должен измениться, может я найти его позже, и т.д.),
@lomax: возможно, я не мог бы хотеть, чтобы все с доступом к физическому серверу (например, системные администраторы) видели пароль.
Спасибо!
В большинстве случаев я полагаю, что достаточно запутать пароль в файле простого текста (например, с base64). Вы не можете полностью защитить сохраненный пароль от решительного системного администратора с корневым доступом, таким образом, нет действительно никакой потребности попробовать. Простая путаница, однако, защищает от случайного раскрытия пароля серфингисту плеча.
Более сложная альтернатива должна настроить выделенный сервер безопасного пароля что также:
В зависимости от используемых сетевых протоколов это не может защитить от системного администратора жулика с tcpdump. И это, вероятно, не защитит от решительного системного администратора с отладчиком, также. В той точке могло бы быть пора посмотреть на что-то как билеты Kerberos.
Можно испечь симметричный ключ шифрования в двоичный файл и иметь тот двоичный файл, читает зашифрованное имя пользователя/пароль из файла на диске, когда это запускает.
Однако это не действительно намного больше, чем путаница, так как Ваш код, вероятно, будет сохранен в некотором исходном репозитории где-нибудь.
Я предположил бы, что Вы будете лучше обслуживаться, чтобы управлять доступом к Вашим серверам и физически и по сети с помощью брандмауэра и пузыря частной сети, и сохранить пароли в ясном (или основывать 64 закодированных) на диске с полномочиями, заблокированными вниз пользователю выполнения для веб-приложения.
Можно также заблокировать вниз сервер базы данных, чтобы только принять соединения от машин веб-приложения IP.
В конечном счете Ваша проблема состоит в том, что ключ (Ваша пара имени пользователя/пароля DB) должен быть доступен для программного, необслуживаемого использования Вашими веб-приложениями.
PostgreSQL предлагает хорошее решение для такой ситуации в своей документации. По сути, вы используете ssh для соединения порта на вашей машине с портом сервера PostgreSQL на удаленной машине. Это имеет три этапа аутентификации:
Это сводит безопасность к тому, что ваши учетные записи пользователей защищены, конфигурация ssh надежна, и вам не нужен пароль, хранящийся где-либо.
Edit: Я должен добавить, что это будет работать с любой базой данных, которая слушает TCP/IP порт. Так получилось, что это описано в PostgreSQL. И вам понадобится iptables (или эквивалент в Linux) для ограничения портов. См. здесь.