예제 #1
0
        /// <summary>
        /// Adds the Data base
        /// </summary>
        /// <param name="strDBName"></param>
        /// <returns></returns>
        public Boolean AddData(String strDBName, String strTableName, NetworkData objData)
        {
            //Declarations
            Boolean blnFlag = false;
            MongoDatabase objDB = GetServer().GetDatabase(strDBName);

            try
            {
                //Get the table
                MongoCollection objTable = objDB.GetCollection(strTableName);

                //Insert the data
                objTable.Insert(objData);
                objTable.Save(objData);
                blnFlag = true;
            }
            catch (Exception ex)
            {
                Utility.DisplayException("AddData", ex);
            }

            return blnFlag;
        }
예제 #2
0
        /// <summary>
        /// Gets triggered before the request has been made
        /// </summary>
        /// <param name="objSession"></param>
        private void FiddlerApplication_BeforeRequest(Session objSession)
        {
            try
            {
                //Declarations
                Utility objUtility = new Utility();
                DBUtility objDBUtility = new DBUtility();

                //Declarations
                String strContentType = String.Empty;

                //Uncomment this if tampering of response is required
                //objSession.bBufferResponse = true;

                //Get the content type
                strContentType = objSession.oRequest.headers["Accept"];

                //If its an HTML request or else the configuration has been set to capture all the requests
                if (strContentType.Contains("text/html") || _enConfiguration == Config.CaptureAll)
                {
                    //Get the request headers
                    HTTPRequestHeaders objRequestHeaders = objSession.oRequest.headers;

                    //Construct the network data
                    NetworkData objNetworkData = new NetworkData
                    {
                        ClientIP = objSession.clientIP,
                        HostName = objSession.hostname,
                        URLFullPath = objSession.fullUrl,
                        IsHTTPS = objSession.isHTTPS,
                        RequestedAt = objSession.Timers.ClientBeginRequest.ToString(),
                        RequestType = objRequestHeaders.HTTPMethod
                    };

                    //Get the request body
                    String strRequestBody = objSession.GetRequestBodyAsString();

                    //If its a POST request
                    if (objNetworkData.RequestType == "POST")
                        //Get the request parameters
                        objNetworkData.RequestParameters = objUtility.GetRequestParameters(strRequestBody);
                    else if (objNetworkData.RequestType == "GET")
                    {
                        String [] arrQueryString = objNetworkData.URLFullPath.Split(new Char[] { '?' });

                        if(arrQueryString.Length > 1)
                            objNetworkData.RequestParameters = objUtility.GetRequestParameters(arrQueryString[1]);
                    }

                    //Update the capture to Mongo DB
                    if (_enConfiguration != Config.CaptureOnlyWithRequestParameters || objNetworkData.RequestParameters.Count > 0)
                        objDBUtility.AddData("NetworkData", "NetworkData", objNetworkData);
                }
            }
            catch (Exception ex)
            {
                Utility.DisplayException("FiddlerApplication_BeforeRequest", ex);
            }
        }