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