如何防范FtpWebRequest上的跨站脚本(XSS)漏洞?

问题描述 投票:0回答:2

我正在使用 FtpWebRequest 将文件上传到服务器。但它会导致严重的跨站点脚本(XSS)漏洞。该文件内容是导入的,我需要按原样上传。我该如何解决这个问题?

该方法在第 1274 行将未经验证的数据发送到 Web 浏览器,这可以 导致浏览器执行恶意代码。

     StringBuilder sb = new StringBuilder();
     sb.AppendLine(...);
    .
    .
    .
     byte[] data = Encoding.Default.GetBytes(sb.ToString());
     FtpWebRequest requestUpload = (FtpWebRequest)WebRequest.Create(ftpPath);
     requestUpload.Proxy = new WebProxy();
     requestUpload.KeepAlive = false;
     requestUpload.EnableSsl = true;
    
System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
requestUpload.Credentials = new NetworkCredential(ftpUser, ftpPassword);
requestUpload.Method = WebRequestMethods.Ftp.UploadFile;
using (Stream requestStream = requestUpload.GetRequestStream())
{
   requestStream.Write(data, 0, data.Length);
}
FtpWebResponse response = (FtpWebResponse)requestUpload.GetResponse();
c# asp.net ftp xss
2个回答
0
投票

您需要验证您的文件并对其施加适当的限制。两个最合适的限制是尺寸和类型。

您应该将大小限制为适合您的场景,即您需要上传的最大文件大小。

您应该将文件类型限制为不包含可执行文件的类型,例如CSV、PDF。

您可以使用自定义验证属性来处理验证。


0
投票

该代码行不会向网络浏览器发送任何数据。

对我来说,这似乎是一个错误的警告。

© www.soinside.com 2019 - 2024. All rights reserved.