2016-04-07 20 views
0

最近,我的同事想为不同的Web服务器(.net,java,android)设计一个API来获取他们想要的数据,顺便说一下,这是一个.NET API项目。当API的输入只接收sql查询字符串

但API只接收SQL查询字符串...我觉得API的客户端很快就会陷入麻烦。

我认为API的目的是不要让客户担心'我们应该如何创建DAL?','表中数据库的关系是什么?'客户端不应该担心那些,只是传递参数到API中,然后你会得到你想要的所有数据。

我不这么认为参数是SQL查询字符串。如果我必须将SQL查询字符串传递到API中,为什么我不直接使用ADO或EF直接自己获取数据我的Web服务器的框架是ASP.NET。

API为什么存在?因为管理员想要DAL(BO)获取数据,并且DAL(BO)也必须与JAVA团队的Web服务器一起工作。

这是简单的架构。

客户--- Web服务器API --- ---数据库

我错了?是及格的SQL查询字符串到API方法没有那么糟糕?有什么缺点?

回答

1

将SQL查询字符串发送到API以检索数据是世界上最糟糕的主意。

所以基本上如果有人攻击你的系统,你已经为你的数据库写了一个很好的API。

如果你打算这样做,那么你不妨直接暴露你的数据库连接方法。不需要API。可怕的想法!

开发API来完成你想要的工作。如果你需要改变它然后改变它。

编辑:

如果他们要能够灵活地修改返回的数据,那么他们可以在存储过程或视图的名称发送到API来代替。然后,API可以在验证它之后使用存储过程或视图查询数据库。

然后他们可以添加,删除或修改数据库中的存储过程和视图,而不会暴露任何重大安全问题。

+0

是啊他认为安全,所以任何想访问API的人都必须首先获得令牌。是不是更好? –

+1

什么都不是100%安全。总是认为“假如”!如果您失去安全,那么您将失去所有数据,无论是被盗还是删除。如果您在正确实施中失去安全性,那么您仍然限制入侵者可以执行的操作。 – CathalMF