private void grdBannedIPAddresses_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            var grid = (GridView)sender;

            var rowID           = (int)grid.DataKeys[e.RowIndex].Value;
            var txtBannedIP     = (TextBox)grid.Rows[e.RowIndex].Cells[1].FindControl("txtBannedIP");
            var txtBannedUTC    = (TextBox)grid.Rows[e.RowIndex].Cells[1].FindControl("txtBannedUTC");
            var txtBannedReason = (TextBox)grid.Rows[e.RowIndex].Cells[1].FindControl("txtBannedReason");

            var bannedIPAddress = new BannedIPAddress(rowID)
            {
                BannedIP = txtBannedIP.Text
            };

            DateTime.TryParse(txtBannedUTC.Text, out DateTime bannedTime);

            if (timeZone != null)
            {
                bannedTime = bannedTime.ToUtc(timeZone);
            }

            bannedIPAddress.BannedUtc    = bannedTime;
            bannedIPAddress.BannedReason = txtBannedReason.Text;

            bannedIPAddress.Save();

            WebUtils.SetupRedirect(this, Request.RawUrl);
        }
Esempio n. 2
0
        void grdBannedIPAddresses_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            GridView grid = (GridView)sender;

            int     rowID           = (int)grid.DataKeys[e.RowIndex].Value;
            TextBox txtBannedIP     = (TextBox)grid.Rows[e.RowIndex].Cells[1].FindControl("txtBannedIP");
            TextBox txtBannedUTC    = (TextBox)grid.Rows[e.RowIndex].Cells[1].FindControl("txtBannedUTC");
            TextBox txtBannedReason = (TextBox)grid.Rows[e.RowIndex].Cells[1].FindControl("txtBannedReason");

            BannedIPAddress bannedIPAddress = new BannedIPAddress(rowID);

            bannedIPAddress.BannedIP = txtBannedIP.Text;
            DateTime bannedTime = DateTime.UtcNow;

            DateTime.TryParse(txtBannedUTC.Text, out bannedTime);

            if (timeZone != null)
            {
                bannedTime = bannedTime.ToUtc(timeZone);
            }

            bannedIPAddress.BannedUtc    = bannedTime;
            bannedIPAddress.BannedReason = txtBannedReason.Text;
            bannedIPAddress.Save();
            //String pathToCacheDependencyFile
            //        = HttpContext.Current.Server.MapPath(
            //    "~/Data/bannedipcachedependency.config");
            //CacheHelper.TouchCacheFile(pathToCacheDependencyFile);

            WebUtils.SetupRedirect(this, Request.RawUrl);
        }
Esempio n. 3
0
        private static void HandleSpam(string queryText, Exception ex)
        {
            bool autoBanSpamBots = ConfigHelper.GetBoolProperty("AutoBanSpambotsOnSearchErrors", false);

            if ((autoBanSpamBots) && (IsSpam(queryText)))
            {
                if ((HttpContext.Current != null) && (HttpContext.Current.Request != null))
                {
                    BannedIPAddress b = new BannedIPAddress();
                    b.BannedIP     = HttpContext.Current.Request.UserHostAddress;
                    b.BannedReason = "spambot autodetected";
                    b.BannedUtc    = DateTime.UtcNow;
                    b.Save();

                    String pathToCacheDependencyFile
                        = HttpContext.Current.Server.MapPath(
                              "~/Data/bannedipcachedependency.config");

                    CacheHelper.TouchCacheFile(pathToCacheDependencyFile);

                    //log.Error(queryText, ex);
                    log.Info("spambot detected, ip address has been banned: " + HttpContext.Current.Request.UserHostAddress);
                }
            }
            else
            {
                //log.Error(queryText, ex);
                log.Info("spambot possibly detected, ip address was: " + HttpContext.Current.Request.UserHostAddress);
            }
        }
        private void AddIPToBanList(HttpContext context, string reason)
        {
            string ip = SiteUtils.GetIP4Address();

            if (IsBanned(ip))
            {
                return;               //already banned
            }
            BannedIPAddress ipToBan = new BannedIPAddress();

            ipToBan.BannedIP     = ip;
            ipToBan.BannedUtc    = DateTime.UtcNow;
            ipToBan.BannedReason = reason;
            ipToBan.Save();

            String pathToCacheDependencyFile
                = HttpContext.Current.Server.MapPath(
                      "~/Data/bannedipcachedependency.config");

            CacheHelper.TouchCacheFile(pathToCacheDependencyFile);

            log.Info("BannedIPBlockingHttpModule banned ip address " + ip + " for reason: " + reason);
        }