Достаточно ли проверок / валидации для URL-переменной, переданной php-скрипту в url? - PullRequest
1 голос
/ 07 февраля 2011

Я создаю скрипт на своем главном сервере и буду использовать js / html для вызова его в качестве источника изображения, передавая переменную реферера текущей страницы tumblr, чтобы я мог интегрировать статистику моего блога в основную базу данных для отслеживания статистики.

Любой, кто посмотрит на источник, конечно, сможет увидеть, что этот скрипт может принимать переменную url через get. Я не особо разбираюсь в безопасности, но сейчас я использую следующие проверки ввода этой переменной:

$previous_referrer = htmlspecialchars($_GET['ref']);
if (filter_var($previous_referrer, FILTER_VALIDATE_URL) && strpos($_SERVER['HTTP_REFERER'], $tumblelog_url)!== FALSE)

Полагаю, не все так просто. Какие еще проверки следует выполнить, чтобы обезопасить себя от инъекционных атак?

1 Ответ

1 голос
/ 07 февраля 2011

Для безопасной вставки данных в базу данных:

1) Перед вставкой в ​​БД

Фильтр данных:

  • Имеют ли мои данные ожидаемый тип / образец(email, url ....)

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

Предотвращение внедрения sql:

  • при вставке числа используйте функцию типа intval (), floatval ()
  • при вставке строки используйте функцию типа mysql_real_escape_string (только для mysql) или подготовленный оператор.

2) После вставки, перед отображением

Предотвращение Xss с помощью таких функций, как htmlspecialchars () или htmlentites ().

...