Предотвращает ли инъекции XSS и SQL так же просто, как это
Вопрос: ПредотвращаетXSS (межсайтовый скриптинг) как просто с помощьюstrip_tags
на любых сохраненных полях ввода и работаетhtmlspecialchars
на любой вывод выводится ... и предотвращаетSQL-инъекция с помощью PHP PDO подготовленные заявления?
Вот пример:
// INPUT: Input a persons favorite color and save to database
// this should prevent SQL injection ( by using prepared statement)
// and help prevent XSS (by using strip_tags)
$sql = 'INSERT INTO TABLE favorite (person_name, color) VALUES (?,?)';
$sth = $conn->prepare($sql);
$sth->execute(array(strip_tags($_POST['person_name']), strip_tags($_POST['color'])));
// OUTPUT: Output a persons favorite color from the database
// this should prevent XSS (by using htmlspecialchars) when displaying
$sql = 'SELECT color FROM favorite WHERE person_name = ?';
$sth = $conn->prepare($sql);
$sth->execute(array(strip_tags($_POST['person_name'])));
$sth->setFetchMode(PDO::FETCH_BOTH);
while($color = $sth->fetch()){
echo htmlspecialchars($color, ENT_QUOTES, 'UTF-8');
}