Я запускаю все свои целые числа через (int)Integer
, чтобы сделать их безопасными для использования в моих строках запроса.MySQL/PHP - экранирование символов, которые могут замедлить мою базу данных (или сделать ее неожиданно)
Я также запустить мои строки через этот код функции: -
if(!get_magic_quotes_gpc()) {
$string = mysql_real_escape_string($string);
}
$pattern = array("\\'", "\\\"", "\\\\", "\\0");
$replace = array("", "", "", "");
if(preg_match("/[\\\\'\"\\0]/", str_replace($pattern, $replace, $string))) $string = addslashes($string);
$cleanedString = str_replace('%','',$string);
я, очевидно, возвращает переменную $ cleanedString. Теперь я заменяю символ%, потому что это подстановочный знак для mySQL, и это может потенциально замедлить мои запросы (или заставить их возвращать неверные данные), если пользователь их вставил. Есть ли другие специальные символы для mySQL, о которых я должен беспокоиться?
На второй ноте, есть ли что-то неправильное или избыточное о моем поиске и замене после mysql_real_escape_string
? Я получил его с веб-сайта, когда я только начинал, и (если я правильно помню), он сказал, что вам нужно использовать этот поиск/замену в дополнение к escape-строке. Похоже, он пытается удалить любые ранее сбежавшие символы инъекций?
Я не могу отредактировать ваше сообщение strip_slashes is stripslashes(). Спасибо за этот совет, я думаю, что важно реорганизовать и изменить код моего новичка, чтобы я не пропускал все, что было важно для моей безопасности. – alex 2008-12-04 00:23:43