Как myWebservice.asmx (вызываемый из myJavascript.js) может вызываться только с моего сайта, а не из XSS? - PullRequest
0 голосов
/ 03 января 2011

Существуют ли передовые методики, которые значительно повысили бы безопасность приложения asp.net, когда Javascript напрямую передает данные из html / формы в веб-службу asp.net/c#, например:

HTML:

<input type="text" id="txtData" />

<input type="button" onclick="SendData()" />

JAVASCRIPT:

function SendData()
{
    var userData = document.getElementById('txtData').value;

    MyWebservice.DoSomething(userData, SendData_Result);
}

function SendData_Result(result)
{
    //handle output displayed to user from 'result'
}

Webservice / ASMX:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class MyWebservice : System.Web.Services.WebService
{
    public MyWebservice() { }

    [WebMethod]
    public string DoSomething(string userInputGoesHere)
    {
        //how to make sure the user input is valid?
    }
}

Например, если www.SomeBadGuysSite.com отправляет XSS, либо ссылаясь на javascript на моем сайте, либо манипулируя им, ИЛИ непосредственно ссылается на сам веб-сервис ... - как я могу добиться того, чтобы информация поступала с моего сайта, а не с сайта плохого парня или ПК?
- и я не беспокоюсь о том, какие данные находятся в текстовом поле, только чтобы попытаться убедиться, что единственный раз, когда веб-служба может быть вызвана, с моей страницы html / forms.

Примечание. Я использую проверку подлинности с помощью форм, и только авторизованные пользователи могут получить доступ к любым страницам или веб-службам. Однако, если злоумышленник проходит проверку подлинности на моем веб-сайте, но запускает собственный вредоносный код со своего веб-сайта или компьютера, разве мой сайт не считает, что он уже прошел проверку подлинности, и разрешает ли ему отправлять данные в веб-службу?

Мне интересно, могут ли зашифрованные файлы cookie сыграть какую-либо роль в решении этой проблемы безопасности? (и по причинам, не заслуживающим внимания, использование Sessions / SessionState для меня не вариант)

1 Ответ

0 голосов
/ 03 января 2011

С Создание безопасных веб-служб :

Веб-сервисы, которые предоставляют конфиденциальные или ограниченная информация должна аутентифицировать и авторизовать их звонящие. Слабая аутентификация и авторизация может быть использована для получения несанкционированный доступ к чувствительным информация и операции.

Раздел Аутентификация должен дать вам несколько идей.

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