我有各种c#rest服务在数据库上执行正常的CRUD任务,
例如,我有一个休息服务来将客户添加到我的客户数据库表中,该表将需要XML,如下所示,
<CreateCustomerRequest>
<Name>Customer name</Name>
<Surname>Customer surname</Surname>
</CreateCustomerRequest>
任何知道URL和正确XML结构的人都可以调用其余服务并将客户插入我的数据库。确保未执行未经授权的插入的最佳方法是什么?也许一个密钥发送请求计算为MD%([名称字段] + [姓氏字段] + [共享客户端/服务器密钥] ??
答案 0 :(得分:4)
您可以对REST服务使用基本身份验证。 每个呼叫都需要发送auth信息,否则呼叫将失败并显示401。
基本上,需要将以下内容附加到请求的内容标题中:
Authorization: Basic YWRtaW46YWRtaW4x
其中YWRtaW46YWRtaW4x是base64编码的用户名:密码
如果您需要这种安全级别,您还可以实施SSL并让您的客户端随每个请求一起发送证书。
除非您是该领域的专家,否则不要试图发明自己的安全。
答案 1 :(得分:0)
如果您使用的是c#,请使用内置的Asp.Net身份验证提供程序。
您可以使用asp.net支持的任何类型的身份验证,或者您甚至可以使用自己的提供程序。
使用框架支持的内容总是更好。