Нет фильтрации в sql запросе.
XSS исключена, т.к. htmlspecialchars() не будет выполнять зловредный код.
Должо быть так:
Код:
<?php
if (! preg_match("|^[\w\d\. ]+$|i", $name))
$name= htmlspecialchars($_POST['name'], ENT_COMPAT);
mysql_query("select * from users Where name = '$name'");
?>
UTF-8 — это представление Юникода
символы Юникода изображаются последовательностями длиной от 2 до 6 байт
(на деле, только до 4 байт, поскольку в Юникоде нет символов с кодом больше 10FFFF)
да, осталось только определить сколько байт символ занимает.. мой вариант от 1 до 2 =\