Asp.net WebResponse拒绝服务
我正在使用以下代码:-Asp.net WebResponse拒绝服务,asp.net,web-services,security,Asp.net,Web Services,Security,我正在使用以下代码:- WebRequest webrequest = WebRequest.Create("myurl"); webrequest.Method = "GET"; webrequest.ContentType = "application/json"; webrequest.ContentLength = 0; using (WebResponse jsonResponse = webrequest.GetResponse())
WebRequest webrequest = WebRequest.Create("myurl");
webrequest.Method = "GET";
webrequest.ContentType = "application/json";
webrequest.ContentLength = 0;
using (WebResponse jsonResponse = webrequest.GetResponse())
{
using (StreamReader reader = new StreamReader(jsonResponse.GetResponseStream()))
{
result = reader.ReadToEnd();
}
}
如果攻击者注入大量数据,我的系统将挂起/cras在这一行result=reader.ReadToEnd()代码>因为这将占用大量内存和时间
我的问题是,是否有任何方法可以保护此代码免受攻击者的攻击 当您的代码执行请求时,这并不是真正的“攻击”…@David如果我错了,很抱歉,当请求攻击者注入大量数据时,reader.ReadToEnd()
将花费大量时间,并且它可能会产生OutOfMemoryException
如果您担心流可能太长,请将其分块读取,而不是一次读取整个内容。我之前的观点是,没有人攻击您的应用程序。您的应用程序正在请求数据。没有拒绝服务,没有安全违规,没有任何形式的攻击。您只是从服务器请求数据。如果您怀疑响应中可能有大量数据,请将响应流用作流,而不是将整个响应加载到内存中。当您的代码执行请求时,这并不是真正的“攻击”…@David抱歉,如果我错了,在请求时,如果攻击者注入大量数据,reader.ReadToEnd()
将花费大量时间,并且它可能会产生OutOfMemoryException
如果您担心流可能太长,请将其分块读取,而不是一次读取整个内容。我之前的观点是,没有人攻击您的应用程序。您的应用程序正在请求数据。没有拒绝服务,没有安全违规,没有任何形式的攻击。您只是从服务器请求数据。如果您怀疑响应中可能有大量数据,则将响应流用作流,而不是将整个响应加载到内存中。