WCF jQuery AJAX中的安全问题通过GET方法调用

时间:2013-05-17 12:56:02

标签: jquery ajax wcf restful-authentication wcf-rest

我正在使用GET方法通过jQuery AJAX调用来使用WCF服务。

由于我无法使用POST方法工作通过jQuery AJAX获取WCF调用,我正在使用GET方法。使用GET方法,WCF方法的URL通过JavaScript公开。因此,应该有一种方法可以使用加密或任何其他方法保护前端和后端之间的通信。

因此,我构建了一个身份验证字符串。身份验证字符串可以定义为在前端(JavaScript)加密并在后端(WCF)进行身份验证的唯一数据集。身份验证字符串可以包含用户名,密码,WCF服务名称,WCF方法名称和时间戳等信息。

示例:加密唯一数据的组合:admin_admin_member_getmemberbyid_201305171604,它将是816dd1f8cd17256fc343948df5ffdf3b(使用MD5)并发送到发送到后端的数据。

使用MD5加密,在前端可以加密有关操作的一些信息的组合;在后端,必须对相同的信息组合进行加密和验证。由于MD5无法解密,因此无法加密数据。任何知道用于构建要加密的字符串的组合的人都能够生成MD5哈希并使用。

与MD5不同,共享密钥加密可用于加密数据,因此在后端可以通过使用预共享密钥进行解密来检索原始数据。但是,可以在前端源代码中看到预共享密钥。因此,加密变得无用。

在公钥加密中,安全性是必须猜测或攻击两个因素。一个是数据或参数模式,另一个是认证字符串。但是,如果您在浏览器上调试,仍然可以从JavaScript中读取。

注意:由于网络延迟等任何延迟,在MD5字符串或预共享密钥中使用时间戳可能会失败。

有没有办法可以使用GET保护通过REST公开的WCF服务?