
ProTech-Online.com
Microsoft C# ASPX code example http input filter and http output of hidden content.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
/// <summary>
/// Summary description for SANSReplaceHTML
/// </summary>
public class SANSReplaceHTML : Stream
{
Stream responseStream;
long position;
public SANSReplaceHTML (Stream inputStream)
{
responseStream = inputStream;
}
public override bool CanRead
{
get { return true;}
}
public override bool CanSeek
{
get { return true; }
}
public override bool CanWrite
{
get { return true; }
}
public override void Close()
{
responseStream.Close ();
}
public override void Flush()
{
responseStream.Flush ();
}
public override long Length
{
get { return 0; }
}
public override long Position
{
get { return position; }
set { position = value; }
}
public override long Seek(long offset, SeekOrigin origin)
{
return responseStream.Seek (offset, origin);
}
public override void SetLength(long length)
{
responseStream.SetLength (length);
}
public override int Read(byte[] buffer, int offset, int count)
{
return responseStream.Read (buffer, offset, count);
}
public override void Write(byte[] buffer, int offset, int count)
{
string responseHtml = "";
string strBuffer = Convert.ToBase64String(buffer);
string tmpStr = System.Text.Encoding.UTF8.GetString(buffer);
byte[] tmpHtml = System.Text.Encoding.UTF8.GetBytes("<h1>Hidden Content</h1>");
byte[] tmpBuffer = new byte[buffer.Length + tmpHtml.Length];
Array.Copy(buffer, tmpBuffer, buffer.Length);
Array.Copy(tmpHtml, 0, tmpBuffer, buffer.Length, tmpHtml.Length);
string changedResponse = Convert.ToBase64String(tmpBuffer);
// ---------------------------------
// Wait for the closing </html> tag
// ---------------------------------
Regex eof = new Regex("<html", RegexOptions.IgnoreCase);
if (!eof.IsMatch(tmpStr))
{
responseHtml = changedResponse;
byte[] data = Convert.FromBase64String(responseHtml);
responseStream.Write(data, 0, data.Length);
}
else
{
responseStream.Write(buffer, 0, buffer.Length);
}
}
}
Copyright © 2013 ProTechs-Online.com; All rights reserved.