Kau*_* DB 3 c# sql escaping sql-server-2008
插入字符串时我需要检查和转义的字符是什么?
INSERT INTO gamedata (gamename, url, dlink)
VALUES ('mady's run', 'http://www.sdfa.com', 'http://extabit.com/sdf')</code>
Run Code Online (Sandbox Code Playgroud)
我该如何逃避这些角色?
我正在使用C#并使用SQL Server Management Studio 2008管理数据库.
Jon*_*eet 22
不要逃避它们.只是不要在SQL中包含值.而是使用参数化SQL并直接为参数提供值.没有转义,没有引用,没有转换 - 并且没有SQL注入攻击的风险.
有关示例,请参阅文档SqlCommand.Parameters.
您应该将此应用于所有值 - 而不仅仅是您预期具有"特殊"字符的值.它将代码(SQL)与数据(值)分开,避免了SQL注入攻击,并且还避免了不必要的转换(如果您不小心,这可能会导致日期/时间值和数字出现问题).