Как избежать встроенных скриптов в плагинах WordPress, чтобы предотвратить отклонениеPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как избежать встроенных скриптов в плагинах WordPress, чтобы предотвратить отклонение

Сообщение Anonymous »

В настоящее время я загружаю свой собственный плагин WordPress, но он дважды был отклонен из-за проблем с безопасностью. Основная проблема связана со встроенными скриптами, которые я добавляю с помощью wp_add_inline_script. Ниже приведен ответ, который я получил от группы проверки WordPress:

Переменные и параметры должны быть экранированы при отображении. Во многом это связано с
очисткой всего, всех переменных. которые отображаются, должны быть
экранированы при их отображении, чтобы они не могли перехватить пользователей или (что еще хуже) экраны администратора
. Существует множество функций esc_*(), которые вы можете использовать, чтобы убедиться, что вы
не показываете людям неправильные данные, а также некоторые, которые позволят вам
безопасно отображать HTML.В настоящее время мы просим вас избегать всех $-переменных, параметров и любых
сгенерированных данных при их отображении. Это означает, что вам следует
экранировать не при создании переменной, а при выводе ее в
конце. Мы называем это «побегом поздно».

Вопрос:
Что такое правильный способ экранирования этих переменных для использования во встроенном скрипте, добавленном с помощью wp_add_inline_script()? Как я могу изменить свой код, чтобы обеспечить его соответствие стандартам безопасности WordPress и предотвратить дальнейшие отклонения?
Код

Код: Выделить всё

private function add_iframe_inline_script($iframe_data) {
// Prepare the redirect URL for after verification
$redirectUrl = esc_url_raw(get_site_url() . '/verification/?order_id=' . $iframe_data['order_id']);

// Escape dynamic values for inclusion in the script
$url = esc_url_raw($iframe_data['url']); // Escaping URL for use in form action
$bin = esc_js($iframe_data['bin']); // Escaping JS value for the 'Bin' field
$jwt = esc_js($iframe_data['jwt']); // Escaping JS value for the 'JWT' field
$token = esc_js($iframe_data['token']); // Escaping JS value for 'token'
$reference = esc_js($iframe_data['reference']); // Escaping JS value for 'reference'

// The inline JavaScript, ensuring all dynamic values are properly escaped
$inline_script = "
const Iframe3ds = document.getElementById('3DSFrame');
var form = document.createElement('form');
form.setAttribute('id', 'collectionForm');
form.setAttribute('name', 'devicedata');
form.setAttribute('method', 'post');
form.setAttribute('action', '{$url}');

var binInput = document.createElement('input');
binInput.setAttribute('type', 'text');
binInput.setAttribute('name', 'Bin');
binInput.setAttribute('value', '{$bin}');

var jwInput = document.createElement('input');
jwInput.setAttribute('type', 'text');
jwInput.setAttribute('name', 'JWT');
jwInput.setAttribute('value', '{$jwt}');

form.append(binInput);
form.append(jwInput);
Iframe3ds.contentWindow.document.body.appendChild(form);

document.addEventListener('DOMContentLoaded', function(event) {
form.submit();
window.addEventListener('message', function(event) {
var SessionId = JSON.parse(event.data).SessionId;
window.location.href = '{$redirectUrl}&SessionId=' + SessionId + '&token={$token}&reference={$reference}';
});
});
";

// Add the inline script to the enqueued script
wp_add_inline_script('iframe-inline-script', $inline_script);
}
Будем благодарны за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/791 ... -rejection
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как избежать встроенных скриптов в плагинах WordPress, чтобы предотвратить отклонение
    Anonymous » » в форуме Php
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как асинхронно загружать CSS без встроенных скриптов (в соответствии с CSP)
    Anonymous » » в форуме CSS
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при загрузке скриптов в админке Wordpress
    Anonymous » » в форуме Php
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при загрузке скриптов в админке Wordpress
    Anonymous » » в форуме Jquery
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Bukkit – невозможно использовать внешний JAR в плагинах
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»