вопрос
Есть сторонний модуль для DLE, у меня есть некоторые подозрения на безопасность, так как в нем нет (насколько я понял) никаких проверок для входящих данных. Возможно, я ошибаюсь, но решил спросить тут.
Как надо фильтровать параметры GET запроса для того чтобы не нарушить безопасность? Автор моего модуля сказал, что нехорошие символы сканируются в functions.php. Там есть конструкция, которая не пропускает url если в нем есть кавычки и другие небезопасные символы (выдает Hacking attempt!). Этого достаточно или надо дополнительно их проверять?
Вот что я нашел и есть ли нужда в таких проверках?
Для числовых значений:
Для значений типа текст:
Какие общие рекомендации для фильтрации GET в Datalife Engine если данные пойдут в SQL запрос? Как это должно выглядеть? Кто может, поделитесь заготовками для фильтрации данных. Спасибо.
Как надо фильтровать параметры GET запроса для того чтобы не нарушить безопасность? Автор моего модуля сказал, что нехорошие символы сканируются в functions.php. Там есть конструкция, которая не пропускает url если в нем есть кавычки и другие небезопасные символы (выдает Hacking attempt!). Этого достаточно или надо дополнительно их проверять?
Вот что я нашел и есть ли нужда в таких проверках?
Для числовых значений:
$number = intval($_GET['input_number']);
Для значений типа текст:
function strip_data($text)
{
$quotes = array ("\x27", "\x22", "\x60", "\t", "\n", "\r", "*", "%", "<", ">", "?", "!" );
$goodquotes = array ("-", "+", "#" );
$repquotes = array ("\-", "\+", "\#" );
$text = trim( strip_tags( $text ) );
$text = str_replace( $quotes, '', $text );
$text = str_replace( $goodquotes, $repquotes, $text );
$text = ereg_replace(" +", " ", $text);
return $text;
}
$input_text = strip_data($_GET['input_text']);
$input_text = htmlspecialchars($input_text);
$input_text = mysql_escape_string($input_text);
Какие общие рекомендации для фильтрации GET в Datalife Engine если данные пойдут в SQL запрос? Как это должно выглядеть? Кто может, поделитесь заготовками для фильтрации данных. Спасибо.