Задать вопрос

Защита от SQL инъекций

Написал небольшую функцию на PHP:

function sql_guard($method, $query, $type)
{
	if ($method == 'POST')
		$safe_text = ($type == 'int') ? intval($_POST["$query"]) : addslashes($_POST["$query"]);
	elseif ($method == "GET")
		$safe_text = ($type == 'int') ? intval($_GET["$query"]) : addslashes($_GET["$query"]);
	else
		$safe_text = ($type == 'int') ? intval($_REQUEST["$query"]) : addslashes($_REQUEST["$query"]);

	return $safe_text;
}


Применяется так:
$var1 = sql_guard('POST', 'input1');
$var2 = sql_guard('POST', 'input2', 'int');


Думаю, что она делает объяснять не стоит. А теперь, собственно, у меня вопрос о целесообразности использования такой функции. Не проще ли (а может быть правильнее) делать addslashes или intval в самом теле запроса? Или это дело вкуса?

Также хотелось бы узнать, какие еще способы защиты от инъекций нужно использовать. Да и вообще, общие советы по безопасности.
  • Вопрос задан
  • 5652 просмотра
Подписаться 4 Оценить Комментировать
Решение пользователя DevMan К ответам на вопрос (6)
DevMan
@DevMan
Откройте для себя PDO и placeholders.
Ответ написан