簡體   English   中英

如何只能從我的網站而不是XSS調用myWebservice.asmx(從myJavascript.js調用)?

[英]How can myWebservice.asmx (being called from myJavascript.js), only be callable from my website and not XSS?

當Javascript直接將html / form中的數據提交到asp.net/c# webservice時,是否有任何最佳實踐技術可以大大提高asp.net應用程序的安全性,如下所示:

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'
}

Web服務/ 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通過引用和操作我網站上的javascript發送XSS,或者他們直接引用了Web服務本身...-我該如何嘗試強制輸入內容來自我的網站而不是來自壞人的網站或PC?
-並且我不關心文本框中的數據是什么,只是試圖確保可以調用Webservice的唯一時間是在我的html / forms頁面中。

注意:我使用的是表單身份驗證,只有經過身份驗證的用戶才能訪問任何頁面或Web服務。 但是,如果一個壞人在我的網站上通過了身份驗證,但是從他的網站或PC上運行了自己的惡意代碼,我的網站是否會認為他已經通過了身份驗證並允許他向Web服務提交數據?

我想知道加密的cookie是否可以在解決此安全問題方面發揮任何作用? (由於不值得討論的原因,使用Sessions / SessionState對我來說不是一種選擇)

通過構建安全的Web服務

提供敏感或受限制信息的Web服務應對調用者進行身份驗證和授權。 可以利用較弱的身份驗證和授權來獲取對敏感信息和操作的未授權訪問。

身份驗證部分應給您一些想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM