Я хочу создавать SQL-запросы на таких языках, как Java или C #.Всем известно, что вы не должны этого делать:
sql = "SELECT * FROM T WHERE A='" + someString + "'"
Поскольку это позволяет внедрять код, например, с помощью:
someString = "xxx';DROP TABLE T;DECLARE @A CHAR(3) ='xxx"
Всем известно, что вы должны использовать правильные параметры SQL, предоставляемые стандартным API-интерфейсом.доступно на большинстве языков.
Но по некоторым причинам, которые слишком сложны для объяснения (пожалуйста, предположите, что у меня есть веские причины), я не могу или не хочу использовать надлежащие параметры, и мне нужно придерживаться опасногосам способ форматирования строки.
Мой вопрос прост.Безопасно ли следующее:
sql = "SELECT * FROM T WHERE A='" + someString.Replace("'","''") + "'"
Если вы считаете, что это зависит от СУБД, пожалуйста, придерживайтесь MySQL.