Я работаю над несколькими страницами, чтобы управлять данными, поступающими из текстового поля, которое пользователь может использовать для написания контента через базовый редактор WYSIWYG. В этом текстовом поле я сокращаю несколько тегов. Мне интересно, достаточно ли следующего процесса, чтобы защитить себя от спама и других скрытых опасностей, связанных с внедрением запросов sql и т. Д.Strip Tags, удалить другие символы и mysql_real_escape_string достаточно?
Мои шаги
function string_db ($value)
{
$value = (get_magic_quotes_gpc()) ? stripslashes($value) : $value;
return mysql_real_escape_string($value);
}
$content = string_db(trim($_POST['conten']));
$content = strip_tags($content, '<p><a><b><u><i>'); // The 5 tags allowed
$content = str_replace("<", "", $content);
$content = str_replace(">", "", $content); //In case someone try to type html entities instead of html code
//INSERT DATA IN DB
На странице, где я отображать данные, ранее сохраненные в БД я использую:
echo html_entity_decode($contentFromDb);
Является ли это достаточно? Есть ли список тестов для того, чтобы доказать эффективность?
Большое спасибо
Возможно, вы не должны использовать стрипы. По-видимому, он имеет уязвимости. Вместо этого вы должны использовать что-то вроде HtmlPurifier. http://htmlpurifier.org/comparison – Gohn67
Я проверяю уязвимости ленточных тегов, и я планирую удалить все атрибуты on (Event) в теге A. HtmlPurifier - отличное решение, но оно слишком тяжелое – user1225730