3

我有各种 c# rest 服务在数据库上执行正常的 CRUD 任务,

例如,我有一个休息服务将客户添加到我的客户数据库表中,该表需要如下所示的 XML,

<CreateCustomerRequest>
    <Name>Customer name</Name>
    <Surname>Customer surname</Surname>
</CreateCustomerRequest>

因此,任何知道 URL 和正确 XML 结构的人都可以调用 rest 服务并将客户插入到我的数据库中。确保不执行未经授权的插入的最佳方法是什么?也许一个密钥发送,请求计算为 MD%([name field] + [surname field] + [shared client/server key]??

4

2 回答 2

4

您可以在 REST 服务中使用基本身份验证。每个调用都需要发送身份验证信息,否则调用将失败并返回 401。

基本上,需要将以下内容附加到请求的内容标头中:

Authorization: Basic YWRtaW46YWRtaW4x

其中 YWRtaW46YWRtaW4x 是 base64 编码的用户名:密码

如果您需要该级别的安全性,您还可以实施 SSL 并让您的客户端随每个请求一起发送证书。

除非您是该领域的专家,否则不要试图发明自己的安全性。

于 2012-09-28T13:25:21.317 回答
0

如果您使用的是 c#,只需使用内置的 Asp.Net 身份验证提供程序。

您可以使用 asp.net 支持的任何类型的身份验证,甚至可以推出自己的提供程序。

使用框架支持的东西总是更好。

http://www.asp.net/web-forms/tutorials/security

http://msdn.microsoft.com/en-us/library/ms733071.aspx

于 2012-09-28T13:31:12.313 回答