Как обезопасить мои веб-сервисы с помощью вызовов JQuery / Javascript? - PullRequest
4 голосов
/ 23 июня 2011

Предположим, я создал веб-сервис (DataOperation.asmx) в своем веб-приложении.Теперь я вызываю этот веб-сервис через мою страницу .aspx, используя JQuery.например:

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

} 
}); 

Теперь мой вопрос: если кто-нибудь увидит это имя веб-службы и имя веб-метода, изучив исходный код HTML-страницы, то он может использовать его где угодно и может создать какую-то вредоносную запись, вызвав эту сеть.Сервисы.Итак, как я должен защищать эти веб-сервисы от других, и в то же время я должен иметь возможность использовать его с вызовами JQuery / Javascript.

Кто-нибудь знает, что ответ будет оценен.

С уважением, Хайдар

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

Сценарий состоит в том, что у нас установлен 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 = интеграция O = Oracle L = Бангалор, S = IN"

Это должно быть похоже на

Как только вы выполните эту команду, вы найдете ключ с именем arpit.keystore, созданный в той же папке, где вы ее выполнили.

Вы можете скопировать arpit.keystore в $ ORACLE_HOME / j2ee / home / config

Теперь снова

  1. Скопируйте файл default-web-site.xml в secure-web-site.xml

  2. Отредактируйте secure-web-site.xml: 2.1. Измените тег веб-сайта, изменив порт на 4443 и добавив элемент secure = "true" 2.1. Добавьте элемент ssl-config и укажите его на новое созданное хранилище ключей. Файл выглядит так:

... ...

  1. Импортируйте новый веб-сайт в свой экземпляр OC4J, отредактировав файл $ ORACLE_HOME / j2ee / home / server.xml. Вам необходимо добавить или заменить тег сайта. В

... ...

Поскольку мы скопировали файл с веб-сайта по умолчанию, все приложения доступны с использованием HTTP и HTTPS

Теперь запустите OC4J и протестируйте порт HTTPS.

Должно работать. Это для автономного контейнера

1 голос
/ 26 июня 2011

Я бы обезопасил его, убедившись, что запрос поступил из того же сеанса, на котором обслуживается страница. Это можно сделать, выполнив подписанный файл cookie, когда вы вернете страницу, содержащую этот javascript, который будет вызываться в вашей сетиоказание услуг.Когда ваша страница выполняет вызов ajax, она будет включать этот подписанный файл cookie, который вы можете проверить в своем веб-методе, прежде чем возвращать какие-либо результаты.Чтобы предотвратить подделку файлов cookie, сохраните уникальный идентификатор tokenID в своем сеансе и сделайте этот tokenID частью своего файла cookie.Если идентификаторы tokenID не совпадают, не обрабатывайте веб-метод (просто верните ошибку).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...