SQL Server上的SQL注入攻击是什么?我们怎样才能防止这种情况?
答案 0 :(得分:0)
SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序,其中将恶意SQL语句插入到输入字段中以便执行(例如,将数据库内容转储给攻击者)。
http://en.wikipedia.org/wiki/SQL_injection
如何:保护ASP.NET中的SQL注入
https://msdn.microsoft.com/en-us/library/ff648339.aspx
https://msdn.microsoft.com/en-us/magazine/cc163917.aspx
以下是一些提示:
永远不要信任用户输入。
始终使用参数化存储过程。
始终对用户输入进行编码/解码。
不要编写内联查询。
https://msdn.microsoft.com/en-us/library/hh882339%28v=vs.110%29.aspx
答案 1 :(得分:0)
在简单语言中,SQLi或SQL注入攻击是使应用程序将数据视为命令的攻击。例如,假设您有一个使用以下SQL语句的身份验证系统:
SELECT *
FROM userlist
WHERE name ='" + username + "';
现在,请说攻击者输入以下用户名:
username = ' OR '1'='1
这将创建一个如下所示的查询:
SELECT *
FROM userlist
WHERE username=' ' OR '1'='1';
由于OR条件始终评估为true,因此由于查询的结果而绕过身份验证将始终返回有效响应。 这是一个基本的SQLi攻击。您可以组合多个查询,例如:
DROP TABLE userlist;
和以下列方式将附加原始查询:
SELECT *
FROM userlist
WHERE username=' ' OR '1'='1';DROP TABLE userlist;
将删除名为' userlist'的表格。来自数据库。
希望有所帮助。