[英]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對我來說不是一種選擇)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.