Я сделал немного PHP Scripting для проверки ввода в текстовом поле формы, если
а.) это число
б.) если это безопасно
Я попробовал это с функцией
<?php
function checkSecurity($glob) {
if (is_numeric($glob)) {
$value = htmlspecialchars($glob);
$value = trim($glob);
return $value;
}
else
{
echo "<p style='color:red;'>Wrong Input</p>";
die;
}
}
Мой ответ: нужно ли проверять безопасность при помощи htmlspecialchars () а также отделка() или не достаточно просто использовать is_numeric ()
большое спасибо
Марио
Если ввод числовой, ни htmlspecialchars, ни trim не будут ничего делать.
Строка 4 в вашем коде не имеет смысла, потому что следующая строка перезаписывает $value
,
htmlspecialchars()
в любом случае это функция _output_encoding, обычно вы не хотите использовать ее при вводе.
При правильном использовании htmlspecialchars()
защищает от некоторые типы XSS. Это не защитит ничего, даже от XSS в целом, не говоря уже о других уязвимостях.
В большинстве случаев вы не можете реализовать универсальную функцию «checkSecurity» для вашего приложения, чтобы обрабатывать все входные проверки. Если бы это было возможно, почему бы ваша структура не сделала этого? (Хорошо, .net делает какой-то степени, но это спорно, является ли это в целом положительным или отрицательным, учитывая ложное чувство безопасности, она дает разработчикам.)
Вы никогда не должны объединять html из строк или создавать html ответы в переменных (применимо как на стороне сервера, так и на стороне клиента). Вам нужен шаблонизатор, если это когда-нибудь случится.
Других решений пока нет …