如果我的数据库用户是只读的,为什么我需要担心sql注入?

joh*_*nny 5 database sql-injection

他们(恶意用户)可以描述表格并获取重要信息吗?如果我将用户锁定到特定表格怎么样?我不是说我想要sql注入,但我想知道我们的旧代码很容易受到影响但db用户被锁定了.谢谢.

编辑:我理解你在说什么,但如果我没有响应.写其他数据,他们怎么能看到它.带来爬行和dos是有意义的,其他人也是如此,但他们将如何实际看到数据?

Sco*_*ock 7

'); SELECT * FROM Users
Run Code Online (Sandbox Code Playgroud)

是的,您应该将它们锁定到他们实际应该能够看到的数据(表/视图),特别是如果它是公开的.


Har*_*d L 7

有人可以注入SQL以使授权检查返回等效的true而不是false来访问应该禁止的事物.

或者,他们可以将目录表的连接注入自身20或30次,以便将数据库性能提升到爬行状态.

或者,他们可以调用运行作为不同的数据库用户的存储过程不会修改数据.


Ari*_*yck 5

仅当您不介意任意用户读取整个数据库时。例如,这是一个简单的可注入登录序列:

select * from UserTable where userID = 'txtUserName.Text' and password = 'txtPassword.Text'

if(RowCount > 0) {
     // Logged in
}
Run Code Online (Sandbox Code Playgroud)

我只需使用任何用户名和密码“或 1 = 1”登录即可以该用户身份登录。