3

插入字符串时需要检查和转义哪些字符?

INSERT INTO gamedata (gamename, url, dlink) 
VALUES ('mady's run', 'http://www.sdfa.com', 'http://extabit.com/sdf')</code>

如何转义这些字符?
我正在使用 C# 并使用 SQL Server Management Studio 2008 管理数据库。

4

1 回答 1

22

不要逃避他们。根本不要在 SQL 中包含这些值。相反,使用参数化 SQL并直接为参数提供值。没有转义、没有引用、没有转换——也没有 SQL 注入攻击的风险。

有关示例,请参阅文档。SqlCommand.Parameters

您应该将此应用于所有值 - 而不仅仅是您预期具有“特殊”字符的值。它将代码 (SQL) 与数据 (值) 分离,避免 SQL 注入攻击,还避免不必要的转换(如果您不小心,这确实会导致日期/时间值和数字出现问题)。

于 2012-12-23T22:03:35.193 回答