Если имя таблицы заключено в [
]
, просто не допускайте, чтобы имена таблиц содержали "]"
.]
может использоваться злоумышленниками для завершения команды sql и для введения опасного кода.
Если вы создаете sql следующим образом
string sql = "SELECT * FROM [" + tablename + "]";
и tablename
определенокак это
string tablename = "tablename]; DELETE FROM [tablename";
Полученный sql становится
SELECT * FROM [tablename]; DELETE FROM [tablename];
Однако это возможно только в том случае, если имя таблицы содержит ]
.
Примечание.:
Если вы заменяете строковые значения подобным образом, то замена одинарной кавычки двумя одинарными кавычками также делает ее безопасной.
string sql = "SELECT * FROM tbl WHERE Name = '" + input.Replace("'","''") + "'";