Но это дурак или еще есть какой-то способ обойти это.
Нет, ты должен знать, что ты делаешь. Если вы используете связанные параметры (функция, которая поставляется с MySqli), вы полностью защищены от атак типа инъекций с этого вектора атаки . Это не мешает вам - программисту - встраивать строки напрямую и тем самым разрешать атаки с использованием инъекций. Вы должны использовать эту функцию по назначению.
Re: Редактировать
Для начала я должен был сказать, что я использую подготовленные заявления. Вот что я имел в виду с mysqli. Если я использую подготовленные операторы без конкатенации строк, то надежно ли это?
Надежная защита - все еще такое опасное слово. Но вы защищены от инъекционных атак для переменных, которые связаны с помощью подготовленных операторов. Это связано с тем, что связанные параметры передаются отдельно от запроса SQL. При «традиционном» подходе встраивания строки серверу базы данных необходимо проанализировать входные данные, и в этом есть множество крайних случаев (Charsets и т. Д.). Когда данные и запрос отправляются отдельно, фактический анализ не выполняется (по крайней мере, не выполняется анализ переменных данных).