C# 如何对流进行编码

C# 如何对流进行编码,c#,stream,xss,C#,Stream,Xss,我最近对我的代码进行了审计,确定了一些跨站点脚本漏洞。有几个漏洞涉及使用“Stream.Write”。我在下面提供了一个例子,我假设有问题的行需要以某种方式进行编码,但我不知道如何进行编码。有什么建议吗 public class EncryptedStream : Stream { private Stream dataStream; private void MoveToOffset(long newPosition, bool forceRefres

我最近对我的代码进行了审计,确定了一些跨站点脚本漏洞。有几个漏洞涉及使用“Stream.Write”。我在下面提供了一个例子,我假设有问题的行需要以某种方式进行编码,但我不知道如何进行编码。有什么建议吗

public class EncryptedStream : Stream
    {
        private Stream dataStream;

        private void MoveToOffset(long newPosition, bool forceRefresh)
        {
            // XSS vulnerability
            this.dataStream.Write(this.contentBuffer, 0, this.contentBuffer.Length);
        }
    }
其他一些类似于此:

public override void Write(byte[] buffer, int offset, int count)
    {
        // vulnerability
        compressedStream.Write(buffer, offset, count);
    }

这怎么可能是XSS漏洞?没有网站,也没有脚本?这些看起来更像是潜在的缓冲区溢出,这在C#中当然是不可能的……我不清楚跨站点脚本攻击如何怀疑
类,它只是基础结构,一个将内容从一方传递到另一方的“隧道”。您的漏洞必须位于包含未加密值的
this.contentBuffer
中。您必须在应用程序中找到用户输入的输入点,并在那里对其进行santize。对我来说,在这一行中对
this.contentBuffer
进行HTML实体编码没有多大意义,不管传输的是什么。