У меня было регулярное выражение в качестве первой линии защиты от XSS.
public static function standard_text($str)
{
// pL matches letters
// pN matches numbers
// pZ matches whitespace
// pPc matches underscores
// pPd matches dashes
// pPo matches normal puncuation
return (bool) preg_match('/^[\pL\pN\pZ\p{Pc}\p{Pd}\p{Po}]++$/uD', (string) $str);
}
На самом деле это Кохана 2.3 .
Это работает на общедоступном тексте(HTML никогда не используется) и запрещает ввод, если он не проходит этот тест.Текст всегда отображается с htmlspecialchars()
(или, более конкретно, аромат Коханы , он добавляет набор символов среди прочего).Я также поставил strip_tags()
на выходе.
У клиента возникла проблема, когда он хотел ввести текст с круглыми скобками.Я думал об изменении или расширении помощника, но у меня также была вторичная мысль - если я разрешаю двойные кавычки, есть ли какая-то причина, почему мне вообще нужно проверять?
Могу ли я просто полагаться на экранированиевыход