假设我在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调用一起使用。
任何人都知道答案将不胜感激。
此致 海德尔
答案 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将default-web-site.xml复制到secure-web-site.xml
编辑secure-web-site.xml: 2.1。通过将端口更改为4443并添加元素secure =“true”来更改网站标记 2.1。添加ssl-config元素并将其指向新创建的密钥库。 该文件如下所示:
... ...
... ...
由于我们已经从default-web-site复制了该文件,因此所有应用程序都可以使用HTTP和HTTPS
现在启动OC4J并测试HTTPS端口。
它应该工作。这适用于独立容器
答案 1 :(得分:1)
我会确保请求来自与该网页相同的会话来保护它。您可以通过在返回包含将要回调到您的网络的javascript的页面时发出签名的Cookie来执行此操作服务。当您的页面进行ajax调用时,它将包含此签名的cookie,您可以在返回任何结果之前在Web方法中进行验证。要防止cookie欺骗,请在会话中存储唯一的tokenID,并将该tokenID作为cookie的一部分。如果tokenID不匹配,请不要处理Web方法(只返回错误)。