Помощь с выходом в PHP - PullRequest
       17

Помощь с выходом в PHP

3 голосов
/ 01 марта 2011

Код -

$price = mysqli_real_escape_string($connect,trim($results['price']));

цена извлекается из базы данных, а затем отражается с помощью -

echo $price; 

Вопрос - Достаточно ли это безопасно от XSS или SQL-инъекций?Он просто включает в себя цифры.

Спасибо

Ответы [ 5 ]

4 голосов
/ 01 марта 2011

Проверка, вероятно, должна быть выполнена во время ввода данных, но вы можете быть в безопасности, а также проверить на выходе. Я бы просто использовал is_numeric или что-то подобное, чтобы убедиться, что результат действительно является числом.

0 голосов
/ 01 марта 2011

mysqli_real_escape_string () используется для экранирования данных, которые должны быть вставлены в базу данных, для предотвращения SQL-инъекций.Это не имеет ничего общего с XSS.

Вы должны использовать htmlentities (), чтобы делать то, что вы хотите.Я предлагаю вам прочитать ответ эйканала и использовать is_numeric для проверки.

0 голосов
/ 01 марта 2011

Если ваши данные читаются только из БД, вы можете игнорировать их, используя mysqli_real_escape_string ().Это полезно для избежания пользовательского ввода, который должен быть записан в БД.

0 голосов
/ 01 марта 2011

Чтобы быть в безопасности, вам необходимо оценить, является ли ввод для $results['price'] ввода пользователя.

Если это так, перед отправкой в ​​SQL необходимо строго проверить / очистить его как ожидаемое значение.

0 голосов
/ 01 марта 2011

Стандартная практика - использовать htmlspecialchars() или htmlentities() для экранирования вывода в браузер для защиты от XSS. Однако, как упоминалось в другом ответе, реальная проблема заключается в том, были ли правильные данные сохранены в базе данных в первую очередь. Он должен быть надлежащим образом проверен и экранирован перед хранением в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...