我使用期望使用SQL字符串的API。我接受用户输入,对其进行转义并将其传递给API。用户输入非常简单。它要求列值。像这样:
string name = userInput.Value;
然后,我构造一个SQL查询:
string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
name.replace("'", "''"));
这样够安全吗?如果不是,是否有一个简单的库函数使列值安全:
string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
SqlSafeColumnValue(name));
该API使用SQLServer作为数据库。