1

我正在 SQL Server 上运行一个 ASP.NET MVC 应用程序,该应用程序似乎已被黑客入侵或 SQL 注入。数据库每天都会创建大量新的虚假帐户,我还没有完全确定问题,但我担心我以前认为不受 SQL 注入影响的存储过程代码。

以下是我的存储过程代码的三个简短版本,如果它易受攻击,请帮助我纠正它,谢谢。

创建新用户:

CREATE PROCEDURE [dbo].[NEWUSER]
@Name varchar(50),
@Email varchar(70),
@Language varchar(20)
AS

SET NOCOUNT ON;

INSERT INTO dbo.User (name, email, language)
VALUES (@Name, @Email, @Language);

SET NOCOUNT OFF;

INSERT INTO dbo.Names (name)
VALUES (@Name);

SELECT @@IDENTITY

选择用户:

CREATE PROCEDURE [dbo].[GETUSER] 
@Name varchar(33)
AS

SET NOCOUNT ON;

SELECT name, email, language FROM dbo.User WHERE name = @Name;

更新用户:

CREATE PROCEDURE [dbo].[EDITUSER] 
@Name varchar(33),
@Email varchar(70)
AS

SET NOCOUNT ON;

UPDATE dbo.User SET email = @Email WHERE name = @Name;

请帮我解决这个问题,我将不胜感激。

我的 ASP.NET 代码:http ://www.cindro.com/all/database.txt

4

1 回答 1

2

您的存储过程看起来不错。我会尝试在某处查看您的应用程序代码。

  1. 您的表格中有验证码吗?
  2. 您是否执行任何服务器端验证?
  3. 您是否检查请求来自的 IP 地址?
  4. 您是否检查请求是否来自真实浏览器或某些脚本(Request.Browser.Cookies Request.Browser.Crawler)?
于 2013-02-17T09:12:44.380 回答