Миллионы анонимных профилей ASP.NET?

ОБНОВЛЕНИЕ: я только что понял, что мы используем Google Mini Search для проверки веб-сайта для нас для поддержки Google Search. Это обязано создать анонимный профиль для не только каждая проверка, но и возможно даже каждая страница - который был бы возможен?

Привет все, некоторый совет необходим!

Наш веб-сайт получает приблизительно 50 000 хитов в день, и мы используем анонимные профили/пользователей членства ASP.NET, это приводит к миллионам (4.5 м в настоящее время) "активных" профилей, и база данных 'сканирования', у нас есть ночная задача, которая очищает все неактивные.

Нет никакого способа, которым у нас есть уникальные посетители на 4.5 м (наше население графства является только 1/2 миллиона), это могло быть вызвано поисковыми роботами и пауками?

Кроме того, если мы должны жить с этим огромным количеством профилей, имеет там так или иначе оптимизацию DB?

Спасибо

Kev

6
задан Mantorok 6 May 2010 в 11:06
поделиться

2 ответа

Обновите следующий диалог:

Могу я предложить вам реализовать фильтр, который может идентифицировать поисковых роботов по заголовкам запросов и регистрировать анонимный cookie, который вы можете позже в тот же день. расшифровать и удалить анонимную запись aspnet_profile и aspnet_users со связанным UserId.

Возможно, вы проиграете битву, но, по крайней мере, вы получите четкое представление о том, откуда идет весь трафик.


Файлы cookie AnonymousId и анонимные профили через прокси действительны в течение 90 дней после последнего использования. Это может привести к накоплению анонимных профилей.

Очень простой способ справиться с этим - использовать ProfileManager .

ProfileManager.DeleteInactiveProfiles(ProfileAuthenticationOption.Anonymous, DateTime.Now.AddDays(-7));

удалит все анонимные профили, к которым не обращались в течение последних 7 дней.

Но это оставляет вам анонимные записи в aspnet_Users. Членство не предоставляет метод, аналогичный ProfileManager , для удаления устаревших анонимных пользователей.

Итак ...

Лучше всего использовать чистую атаку sql с удалением из aspnet_Profile, если вы считаете их устаревшими, а затем выполнить тот же запрос на aspnet_User, где IsAnonymous = 1 .

Удачи с этим. Как только вы его очистите, просто оставайтесь на вершине.


Обновленное обновление:

Приведенный ниже код действителен только в IIS7 И если вы направите все запросы через ASP.Net

, вы можете реализовать модуль, который отслеживает запросы к robots.txt и получите файл cookie с анонимным идентификатором и поместите его в таблицу роботов, которую вы можете использовать для безопасной очистки ваших таблиц членства / профиля от метаданных роботов каждую ночь. Это может помочь.

Пример:

using System;
using System.Diagnostics;
using System.Web;

namespace NoDomoArigatoMisterRoboto
{
    public class RobotLoggerModule : IHttpModule
    {
        #region IHttpModule Members

        public void Init(HttpApplication context)
        {
            context.PreSendRequestHeaders += PreSendRequestHeaders;
        }

        public void Dispose()
        {
            //noop
        }

        #endregion

        private static void PreSendRequestHeaders(object sender, EventArgs e)
        {
            HttpRequest request = ((HttpApplication)sender).Request;



            bool isRobot = 
                request.Url.GetLeftPart(UriPartial.Path).EndsWith("robots.txt", StringComparison.InvariantCultureIgnoreCase);

            string anonymousId = request.AnonymousID;

            if (anonymousId != null && isRobot)
            {
                // log this id for pruning later
                Trace.WriteLine(string.Format("{0} is a robot.", anonymousId));
            }
        }
    }
}

Ссылка: http://www.codeproject.com/Articles/39026/Exploring-Web-config-system-web-httpModules.aspx


2
ответ дан 17 December 2019 в 18:11
поделиться

Вы можете попробовать удалить анонимные профили в событии Session_End в вашем файле Global.asax.cs.

Существует большая вероятность того, что ваш сайт сканируется либо законным сканером поисковой системы, либо незаконным поисковым роботом, который ищет уязвимости, которые позволят хакерам получить контроль над вашим сайтом / сервером. Вы должны изучить это независимо от того, какое решение вы выберете для удаления старых профилей.

Если вы используете поставщик профиля по умолчанию, который хранит всю информацию профиля в одном столбце, вы можете прочитать эту ссылку , которая относится к статье Скотта Гатри о более эффективной работе с таблицами. провайдер профиля.

1
ответ дан 17 December 2019 в 18:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: