wp_kses_check_attr_val

Definition:
function wp_kses_check_attr_val($value, $vless, $checkname, $checkvalue) {}

Performs different checks for attribute values.
The currently implemented checks are "maxlen", "minlen", "maxval", "minval" and "valueless".

Parameters

  • string $value: Attribute value
  • string $vless: Whether the value is valueless. Use ‘y’ or ‘n’
  • string $checkname: What $checkvalue is checking for.
  • mixed $checkvalue: What constraint the value should pass

Return values

returns:Whether check passes

Source code

function wp_kses_check_attr_val($value, $vless, $checkname, $checkvalue) {

	$ok = true;



	switch (strtolower($checkname)) {

		case 'maxlen' :

			# The maxlen check makes sure that the attribute value has a length not

			# greater than the given value. This can be used to avoid Buffer Overflows

			# in WWW clients and various Internet servers.



			if (strlen($value) > $checkvalue)

				$ok = false;

			break;



		case 'minlen' :

			# The minlen check makes sure that the attribute value has a length not

			# smaller than the given value.



			if (strlen($value) < $checkvalue)

				$ok = false;

			break;



		case 'maxval' :

			# The maxval check does two things: it checks that the attribute value is

			# an integer from 0 and up, without an excessive amount of zeroes or

			# whitespace (to avoid Buffer Overflows). It also checks that the attribute

			# value is not greater than the given value.

			# This check can be used to avoid Denial of Service attacks.



			if (!preg_match('/^\s{0,6}[0-9]{1,6}\s{0,6}$/', $value))

				$ok = false;

			if ($value > $checkvalue)

				$ok = false;

			break;



		case 'minval' :

			# The minval check makes sure that the attribute value is a positive integer,

			# and that it is not smaller than the given value.



			if (!preg_match('/^\s{0,6}[0-9]{1,6}\s{0,6}$/', $value))

				$ok = false;

			if ($value < $checkvalue)

				$ok = false;

			break;



		case 'valueless' :

			# The valueless check makes sure if the attribute has a value

			# (like <a href="blah">) or not (<option selected>). If the given value

			# is a "y" or a "Y", the attribute must not have a value.

			# If the given value is an "n" or an "N", the attribute must have one.



			if (strtolower($checkvalue) != $vless)

				$ok = false;

			break;

	} # switch



	return $ok;

}

3821

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: