Můj návrh je vytvořit funkci pro dezinfekci všech vašich textových vstupů a funkci pro kontrolu všech vašich výstupů, které pocházejí z databáze nebo jiných zdrojů, jako je následující:
<?php
// filter for user input
function filterInput($content)
{
$content = trim($content);
$content = stripslashes($content);
return $content;
}
//filter for viewing data
function filterOutput($content)
{
$content = htmlentities($content, ENT_NOQUOTES);
$content = nl2br($content, false);
return $content;
}
v závislosti na vaší strategii můžete do filtru přidat další funkce nebo některé odebrat. Ale to, co zde máte, stačí k tomu, aby vás ochránilo před XSS.
UPRAVIT: kromě výše uvedené funkce tato odpověď může být také relevantní jako součást ochrany vašeho webu.
Odkaz na různé metody:
- trim:http://php.net/manual/en/function. trim.php
- stripslashes:http://php.net/manual/en/function. stripslashes.php
- htmlentity:http://php.net/manual/en/function. htmlentities.php
- nl2br:http://php.net/manual/en/function. nl2br.php
Je také dobré podívat se na následující odkazy:
- Co je nejlepší metoda pro dezinfekci uživatelského vstupu pomocí PHP?
- Funkce dokonalého čištění/zabezpečení
A co je důležité, je dobré znát 10 hlavních rizik a dozvědět se o nich více.