Я пытаюсь проверить ввод форматированного текста, предоставляемый редактором TinyMCE. Я прекрасно понимаю, что могу оставить себя открытым для XSS et c, и хочу сделать это правильно.
Я очищаю данные POST перед тем, как что-либо делать с ними, с помощью следующего кода:
//sanitise POST array
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
Затем у меня есть собственный класс проверки для проверки каждого ввода поля, теперь он очищен, но ... Я не уверен, как проверить очищенный ввод RTF. Например, я использую ctype-alpha для проверки альфа-входов и filter_var ($ this-> currentObject-> value, FILTER_VALIDATE_EMAIL для проверки действительных адресов электронной почты, но я не уверен, что использовать для очищенного поля tinyMCE.
Я думаю, что мне нужно, возможно, регулярное выражение? Кто-нибудь знает правильное выражение для проверки ввода TinyMCE RTF? Правильно ли я делаю это?
Если использовать регулярное выражение, я могу затем используйте приведенную ниже функцию, чтобы узнать, действительна ли она:
//used to send a custom regex
function regex($regex, $errorMsg = null)
{
if ($this->isValid && (!empty($this->currentObject->value))) {
$this->isValid = (filter_var($this->currentObject->value, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "$regex")))) ? true : false;
if (!$this->isValid) {
$this->setErrorMsg($errorMsg, self::$error_regex);
}
}
return $this;
}
Я думаю, это сработает, но не хватает ли мне каких-либо символов?
^[a-zA-Z0-9\s&|&\.\!?\;\\\-\<\>\/]*$