[英]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.