如何通过JQuery / Javascript调用保护我的Web服务?

时间:2011-06-23 13:19:47

标签: asp.net web-services json

假设我在Web应用程序中创建了一个Web服务(DataOperation.asmx)。现在我使用JQuery通过我的.aspx页面调用这个web服务。喜欢:

$.ajax({ 
type: "POST", 
url: "../../DataOperation.asmx/someMethod", 
cache: false, 
data: "param1=" + p1, 
async: false, 
success: function(msg) { 

} 
}); 

现在我的问题是,如果有人通过调查html页面源代码看到这个web服务名称和webmethod名称,那么他可以从任何地方使用它,并可以通过调用此Web服务来进行一些恶意入口。那么我应该如何保护这些Web服务免受其他人的影响,同时我应该能够将它与JQuery / Javascript调用一起使用。

任何人都知道答案将不胜感激。

此致 海德尔

2 个答案:

答案 0 :(得分:2)

方案是我们在最后安装了SOA Suite,并且我们部署了一个可通过

访问的流程

http://host:port/service/someService

现在我们的要求是如何保护使用https调用服务的链接,以便新请求显示为

https://host:port/service/someService

我再次希望大家通过这个链接来了解密钥和证书。

http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html

在此笔记上,我将生成一个密钥

打开命令窗口并导航到jdk / bin目录并发出命令

keytool -genkey -alias arpit -server -dname“CN = Arpit,OU = Integration O = Oracle L = Bangalore,S = Karnataka,C = IN”-keyalg RSA -keypass welcome1 -storepass welcome1 -keystore arpit.keystore

应该是

执行此命令后,您将找到名称为arpit.keystore的密钥,该密钥将在您执行该文件的同一文件夹中创建。

您可以将arpit.keystore复制到$ ORACLE_HOME / j2ee / home / config

<再次Nnow

  1. 将default-web-site.xml复制到secure-web-site.xml

  2. 编辑secure-web-site.xml: 2.1。通过将端口更改为4443并添加元素secure =“true”来更改网站标记 2.1。添加ssl-config元素并将其指向新创建的密钥库。 该文件如下所示:

  3. ... ...

    1. 通过编辑$ ORACLE_HOME / j2ee / home / server.xml文件,在OC4J实例中导入新网站。您需要添加或替换网站标记。在
    2. ... ...

      由于我们已经从default-web-site复制了该文件,因此所有应用程序都可以使用HTTP和HTTPS

      现在启动OC4J并测试HTTPS端口。

      它应该工作。这适用于独立容器

答案 1 :(得分:1)

我会确保请求来自与该网页相同的会话来保护它。您可以通过在返回包含将要回调到您的网络的javascript的页面时发出签名的Cookie来执行此操作服务。当您的页面进行ajax调用时,它将包含此签名的cookie,您可以在返回任何结果之前在Web方法中进行验证。要防止cookie欺骗,请在会话中存储唯一的tokenID,并将该tokenID作为cookie的一部分。如果tokenID不匹配,请不要处理Web方法(只返回错误)。