2013-02-13 2 views
-1

Так что я пытался сделать, чтобы пользователи могли выбрать свой цвет фона в формате цветового кода HTML.Могу ли я быть уязвимым для XSS в 6 персонажах

Тогда у меня будет обычай использовать их цвет фона, который они указали. Но у меня проблемы с одной маленькой проблемой. Я не могу использовать специальные символы HTML, которые они выбирают, потому что тогда HTML не прочитает его. Из-за этого я не хочу, чтобы у них был сайт XSS. Что мне делать, чтобы это исправить? Как мне обойти это?

+0

Взгляните на это: http://security.stackexchange.com/questions/30431/minimum-size-of-input-text-box-required-for-xss-attacks – MarcDefiant

+1

* Я не могу использовать специальные символы HTML цветного кода, который они выбирают, потому что тогда HTML не читает его. * В HTML или CSS нет средств для представления цвета, который будет использовать любой из символов, которые функция 'htmlspecialchars()' PHP изменяет, так что кажется очень вряд ли. – Quentin

ответ

3

Если ваши пользователи могут выбрать HEX-код, вы должны проверить ввод, который вы вернете, если это действительное шестнадцатеричное значение.

Итак, вы должны проверить, имеет ли он длину 6 символов, и если все символы действительны шестнадцатеричными числами (0-f). Для этого вы можете использовать ctype_xdigit. Все остальные входные значения должны быть отклонены, и вы можете передать шестнадцатеричное значение по умолчанию для вас в качестве цвета фона.

Не могу понять, почему вам нужны специальные символы html, если вы можете проверить свои входные данные.

Редактировать: И да, вы можете быть уязвимы для XSS с 6 символами. Длина здесь не имеет значения.

Смежные вопросы