Использует ли htmlspecialchars () для очистки ввода / вывода HTML, для базы данных MySQL плохой дизайн? [Дубликат]

Возможный дубликат:

Каковы лучшие функции очистки ввода PHP?

Использует ли htmlspecialchars () для очистки ввода / вывода HTML, для базы данных MySQL плохой дизайн?

Если вы вместо этого просто не позволите этим "опасно» признаки, потому что это все еще будет показывать b-теги, i-теги и другие? И как это сделать?

Я спрашиваю, потому что это говорит в викиhttp://en.wikipedia.org/wiki/HTML_sanitization»

Санация HTML может использоваться для защиты от межсайтовых сценариев и атак с использованием SQL-инъекций путем санации любого HTML-кода, предоставленного пользователем ».

Таким образом, помимо использования подготовленных инструкций PDO, для предотвращения SQL-инъекций я хочу использовать этот htmlspecialchars для всего ввода и вывода. Но, может быть, я должен использовать что-то еще?

Это хороший способ сделать оператор вставки, например?

$type= htmlspecialchars($_POST['animaltype']);
$name= htmlspecialchars($_POST['animalname']);
$age= htmlspecialchars($_POST['animalage']);        
$descr= htmlspecialchars($_POST['animaldescription']);
$foto= htmlspecialchars($_POST['animalfotourl']);
$date=htmlspecialchars($_POST['animalhomelessdate']);



$sqlquery  = "INSERT INTO animals_tbl(animaltype, animalname, animalage, animaldescription, animalfotourl, animalhomelesssince) VALUES (':type',':name',':age',':descr', ':foto', ':date')";


$stmt = $conn->prepare($sqlquery);
$stmt->bindParam(':type',$type, PDO::PARAM_STR);
$stmt->bindParam(':name',$name, PDO::PARAM_STR);
$stmt->bindParam(':age',$age, PDO::PARAM_INT);
$stmt->bindParam(':descr',$descr, PDO::PARAM_STR);
$stmt->bindParam(':foto',$foto, PDO::PARAM_STR);
$stmt->bindParam(':date',$date, PDO::PARAM_STR);

$stmt->execute();

Ответы на вопрос(2)

Ваш ответ на вопрос