C# 防火墙拒绝了多部分请求
我正在从事一个Windows10项目,我的任务之一是以多部分请求的方式将文件发送到服务器,因此我通过以下代码实现了这一点:它工作正常,从服务器接收到的文件和任务已完成 代码:C# 防火墙拒绝了多部分请求,c#,security,uwp,firewall,windows-10-universal,C#,Security,Uwp,Firewall,Windows 10 Universal,我正在从事一个Windows10项目,我的任务之一是以多部分请求的方式将文件发送到服务器,因此我通过以下代码实现了这一点:它工作正常,从服务器接收到的文件和任务已完成 代码: System.Net.Http.HttpContent stringContent = new System.Net.Http.StringContent(imageFileName); System.Net.Http.HttpContent bytesContent; var client = new System.Ne
System.Net.Http.HttpContent stringContent = new System.Net.Http.StringContent(imageFileName);
System.Net.Http.HttpContent bytesContent;
var client = new System.Net.Http.HttpClient();
var formData = new System.Net.Http.MultipartFormDataContent();
formData.Add(stringContent, "type");
foreach (byte[] image in imageFileName.GetImagesList())
{
bytesContent = new System.Net.Http.ByteArrayContent(image);
bytesContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");
formData.Add(bytesContent, "images", "file_" + imageFileName.GetImagesList().IndexOf(image) + ".jpg");
}
var response = client.PostAsync(resourceAddress, formData).Result;
然后,当我们移动到生产环境时,防火墙拒绝了此请求,并捕获了多次黑客尝试,例如:
- Http头注入
- “
”的SQL注入#
执行尝试rm
- Backtick命令执行尝试
执行尝试。。。。。。还有更多vi
HttpStreamContent
,并尝试了以下code:
HttpMultipartFormDataContent multipartContent = new HttpMultipartFormDataContent();
HttpStreamContent streamContent;
Stream stream;
foreach (byte[] image in imageFileName.GetImagesList())
{
stream = new MemoryStream(image);
streamContent = new HttpStreamContent(stream.AsInputStream());
streamContent.Headers.ContentType = new HttpMediaTypeHeaderValue("image/jpeg");
multipartContent.Add(streamContent, "images", "file_" + imageFileName.GetImagesList().IndexOf(image) + ".jpg");
}
multipartContent.Add(new HttpStringContent(imageFileName), "type");
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, resourceAddress);
request.Content = multipartContent;
HttpResponseMessage response = await httpClient.SendRequestAsync(request).AsTask(cts.Token);
但不幸的是,我得到了同样的结果。
最重要的一点是,相同的web服务(我正在尝试调用)需要在Android和IOS上实现,并且具有相同的功能(多部分请求),因此来自Android和IOS的请求将通过相同的防火墙,并且它在Android和IOS上运行良好,甚至在生产中 他们是否希望HttpMultipartFormDataContent()中有一个边界值?@RositaClerissaSerrao是的,确实边界是必需的,并且为每个部分隐式添加了边界,但我认为这不是防火墙拒绝我请求的原因。防火墙检查JPEG图像的内容,该内容与mobile发送的内容相同,但出于某些原因(我想知道),它拒绝我的请求并允许移动请求。它们是否希望在HttpMultipartFormDataContent()中有一个边界值?@RositaClerissaSerrao是的,当然边界是必需的,并且每个部分都会隐式添加边界,但我认为这不是防火墙拒绝我请求的原因。防火墙会检查JPEG图像的内容,这与mobile发送的内容相同,但出于某种原因(我想知道),它拒绝了我的请求并允许移动请求。