Commit c6254080 authored by justcoding121's avatar justcoding121

Merge pull request #54 from justcoding121/master

readme
parents ca5e25df 65d6e3ef
...@@ -68,10 +68,11 @@ Sample request and response event handlers ...@@ -68,10 +68,11 @@ Sample request and response event handlers
```csharp ```csharp
//Test On Request, intercept requests //Test On Request, intecept requests
//Read browser URL send back to proxy by the injection script in OnResponse event
public void OnRequest(object sender, SessionEventArgs e) public void OnRequest(object sender, SessionEventArgs e)
{ {
Console.WriteLine(e.ProxySession.Request.RequestUrl); Console.WriteLine(e.ProxySession.Request.Url);
//read request headers //read request headers
var requestHeaders = e.ProxySession.Request.RequestHeaders; var requestHeaders = e.ProxySession.Request.RequestHeaders;
...@@ -91,35 +92,35 @@ Sample request and response event handlers ...@@ -91,35 +92,35 @@ Sample request and response event handlers
//To cancel a request with a custom HTML content //To cancel a request with a custom HTML content
//Filter URL //Filter URL
if (e.ProxySession.Request.RequestUrl.Contains("google.com")) if (e.ProxySession.Request.RequestUri.AbsoluteUri.Contains("google.com"))
{ {
e.Ok("<!DOCTYPE html><html><body><h1>Website Blocked</h1><p>Blocked by titanium web proxy.</p></body></html>"); e.Ok("<!DOCTYPE html>"+
"<html><body><h1>"+
"Website Blocked"+
"</h1>"+
"<p>Blocked by titanium web proxy.</p>"+
"</body>"+
"</html>");
} }
} }
//Test script injection
//Insert script to read the Browser URL and send it back to proxy
public void OnResponse(object sender, SessionEventArgs e) public void OnResponse(object sender, SessionEventArgs e)
{ {
////read response headers
//read response headers
var responseHeaders = e.ProxySession.Response.ResponseHeaders; var responseHeaders = e.ProxySession.Response.ResponseHeaders;
if (e.ResponseStatusCode == "200") if (e.RequestMethod == "GET" || e.RequestMethod == "POST")
{ {
if (e.ResponseContentType.Trim().ToLower().Contains("text/html")) if (e.ProxySession.Response.ResponseStatusCode == "200")
{ {
//Get/Set response body bytes if (e.ProxySession.Response.ContentType.Trim().ToLower().Contains("text/html"))
byte[] responseBodyBytes = e.GetResponseBody(); {
e.SetResponseBody(responseBodyBytes); string body = e.GetResponseBodyAsString();
}
//Get response body as string
string responseBody = e.GetResponseBodyAsString();
//Modify e.ServerResponse
Regex rex = new Regex("</body>", RegexOptions.RightToLeft | RegexOptions.IgnoreCase | RegexOptions.Multiline);
string modified = rex.Replace(responseBody, "<script type =\"text/javascript\">alert('Response was modified by this script!');</script></body>", 1);
//Set modifed response Html Body
e.SetResponseBodyString(modified);
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment