【发布时间】:2015-09-14 01:11:18
【问题描述】:
我正在尝试查找我的 ASP.NET 登录页面中的安全漏洞。我将如何清理用户输入,以便不可能进行 XSS 和 SQL 注入?我觉得我的 Linq 查询是安全的,但我可能是错的。如果您需要更多信息,请告诉我。
String username = usernameTxt.Text.toString();
Company check = (from u in context.Company
where u.companyadminUserName.Equals(username)
select u).FirstOrDefault();
if (check == null)
{
return BAD_USER;
}
else
{
return GOOD_USER;
}
【问题讨论】:
-
这是 Linq(语言集成查询),而不是 Lync(企业通信产品)
-
L2S 和 L2E 使用参数化(使用分析器或手动转储查询非常容易检查),所以你应该很好。
-
@DavidL,但从某种意义上说,这是一种错误的安全感,在某种意义上,如果没有系统地处理问题,我会断然地说“我受到 XSS/SQL 注入的保护”,我会感到不舒服.如果它是一个在你没有意识到之前的实现细节,那么它就是一个问题
-
@tacos_tacos_tacos 首先,值得指出的是,这个问题并没有以任何方式解决 XSS。其次,如果您使用的是对象模型 api(OP 是),您的查询将被参数化并且不使用字符串连接,所以是的,您可以说只要您不执行 sql 命令,您就可以防止注入和/或通过实体框架的不安全存储过程。
标签: c# sql asp.net xss sql-injection