Я использую подготовленные операторы и MySQLi в своих запросах для защиты от атак с использованием инъекций.
Не делайте этого. Не используйте готовые заявления для защиты от чего-либо. Это не то, для чего подготовлены заявления. Это просто, чтобы сделать ваши запросы синтаксически правильными. И, как побочный эффект, синтаксически правильный запрос также неуязвим для любой атаки.
Итак, просто используйте его, чтобы поместить данные в запрос.
Будут ли подготовленные операторы полностью устранять необходимость в mysql_real_escape_string?
Это неправильно со стороны mysql_real_escape_string. эта функция не защищает вас от чего-либо. Если вы просто примените эту функцию к своим данным, это не сделает ее «безопасной». эта функция работает только для строк в кавычках.
Хотя да, использование подготовленных операторов делает эту функцию устаревшей, а также другие простые правила сборки SQL. Это на самом деле делает работу, которую вы думаете mysql_real_escape_string делать. Это действительно делает любые данные безопасными (для SQL).
Есть ли что-то еще, что я должен учитывать при защите своего сайта?
Конечно.
Не для того, чтобы говорить о целом городе - это еще один и слишком широкий вопрос, но опять о SQL-запросе:
Подготовленные заявления делают только данные безопасными.
Таким образом, вам нужно позаботиться о динамических не данных частях запроса, таких как имена полей, операторы и т. Д. Подготовленные операторы вам не помогут.