функция since 1.0.0

wp_kses_bad_protocol()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

wp_kses_bad_protocol( string $content, string[] $allowed_protocols ): string

Описание

Удаляет все недопустимые протоколы в начале строки. Игнорирует пробельные символы и регистр букв, а также распознаёт HTML-сущности. Работает рекурсивно, поэтому её не обмануть строкой вроде javascript:javascript:alert(57).

Оригинал (английский)

This function removes all non-allowed protocols from the beginning of the string. It ignores whitespace and the case of the letters, and it does understand HTML entities. It does its work recursively, so it won’t be fooled by a string like javascript:javascript:alert(57).

Параметры

$content string обязательный
Содержимое, из которого нужно отфильтровать плохие протоколы.
$allowed_protocols string[] обязательный
Массив разрешённых URL-протоколов.

Возвращаемое значение

string

Исходный код

wp-includes/kses.php:1894

function wp_kses_bad_protocol( $content, $allowed_protocols ) {
	$content = wp_kses_no_null( $content );

	// Short-circuit if the string starts with `https://` or `http://`. Most common cases.
	if (
		( str_starts_with( $content, 'https://' ) && in_array( 'https', $allowed_protocols, true ) ) ||
		( str_starts_with( $content, 'http://' ) && in_array( 'http', $allowed_protocols, true ) )
	) {
		return $content;
	}

	$iterations = 0;

	do {
		$original_content = $content;
		$content          = wp_kses_bad_protocol_once( $content, $allowed_protocols );
	} while ( $original_content !== $content && ++$iterations < 6 );

	if ( $original_content !== $content ) {
		return '';
	}

	return $content;
}

История изменений

ВерсияОписание
1.0.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.