休息服务安全

时间:2012-09-28 13:08:46

标签: c# security rest

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

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

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

任何知道URL和正确XML结构的人都可以调用其余服务并将客户插入我的数据库。确保未执行未经授权的插入的最佳方法是什么?也许一个密钥发送请求计算为MD%([名称字段] + [姓氏字段] + [共享客户端/服务器密钥] ??

2 个答案:

答案 0 :(得分:4)

您可以对REST服务使用基本身份验证。 每个呼叫都需要发送auth信息,否则呼叫将失败并显示401。

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

Authorization: Basic YWRtaW46YWRtaW4x

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

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

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

答案 1 :(得分:0)

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

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

使用框架支持的内容总是更好。

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

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