Добавить nonce в теги скрипта, которые не зарегистрированы должным образом в WordPress - PullRequest
0 голосов
/ 09 января 2020

Я создаю строгий CSP для моего сайта Wordpress.

У меня установлены Gravity Forms, и я вижу, что он создает некоторые встроенные javascript. Я хочу добавить одноразовые значения в эти сценарии. То, что у меня есть ниже, добавит значение nonce ко всем скриптам, которые зарегистрированы в Wordpress надлежащим образом.

Вот как я этого добился.

Я настраиваю функцию в функциях. php для генерации одноразового номера с использованием встроенной функции Wordpress.

add_action( 'run_custom_nonce_value', 'custom_nonce_value' );
function custom_nonce_value () {

    $created_nonce = wp_create_nonce();
    define( 'NONCE_RANDVALUE', $created_nonce ); 

}

Затем я настраиваю этот фильтр для добавления значения одноразового номера ко всем сценариям

add_filter( 'script_loader_tag', 'add_nonce_to_script', 10, 3 );
function add_nonce_to_script( $tag, $handle, $source ) {

    custom_nonce_value();
    $val_nonce = NONCE_RANDVALUE;

    $search = "type='text/javascript'";
    $replace = "type='text/javascript' nonce='".$val_nonce."' ";
    $subject = $tag;

    $output = str_replace($search, $replace, $subject);
    return $output;
}

Это решение будет добавить одноразовые номера во все правильно зарегистрированные сценарии в Wordpress.

Как добавить одноразовые атрибуты в встроенные сценарии, которые Gravity Forms внедряет в страницу? Я не думаю, что эти скрипты зарегистрированы правильно.

...