联合登录(OpenID,例如)会造成SQL注入风险吗?

时间:2011-09-07 15:51:58

标签: openid sql-injection dotnetopenauth federated-identity

是否可以安全地假设所有身份提供商都清理用户信息,或者是否可以创建帐户或身份提供商来提供恶意用户名,电子邮件,联系人列表等?

4 个答案:

答案 0 :(得分:3)

现有提供商的可信度无关。攻击者可以编写自己的身份提供程序,并使用它向您发送他们想要的任何内容。您几乎不应该信任第三方数据。

答案 1 :(得分:2)

永远不要假设其他人会为您清理数据。自己动手,或者(更好)与数据库接口,以通过正确编码参数来阻止SQL注入。

答案 2 :(得分:2)

即使他们不允许这样的字符,即使规范禁止这样的字符,你也不应该依赖它。

确保在收到数据时符合您的期望。此外,播放安全并始终使用预准备语句/参数化查询,而无需转义参数,或者,如果不可能,则转义查询参数。通过习惯来做这件事,你就不会有令人讨厌的惊喜。

答案 3 :(得分:1)

我们有几个人在他们的电子邮件地址中有撇号,这不是无效的...问题不是撇号,而是编码员没有使用参数化查询和/或存储过程。真的没有人应该使用内联SQL并且最近连接字符串,这样可以防止几乎所有的SQL注入攻击

如果您必须在SQL Server中使用动态SQL,那么请使用带参数的sp_executeSQL而不是EXEC ....