Лучший способ ограничить доступ IP-адресом?

18
задан 17 revs, 2 users 94% 7 May 2014 в 12:01
поделиться

2 ответа

Один путь использует HttpModule.

Из ссылки (в случае, если это когда-либо уходит):

/// <summary>
/// HTTP module to restrict access by IP address
/// </summary>

public class SecurityHttpModule : IHttpModule
{
 public SecurityHttpModule() { }

    public void Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(Application_BeginRequest);
    }

    private void Application_BeginRequest(object source, EventArgs e)
    {
        HttpContext context = ((HttpApplication)source).Context;
        string ipAddress = context.Request.UserHostAddress;
        if (!IsValidIpAddress(ipAddress))
        {
            context.Response.StatusCode = 403;  // (Forbidden)

        }
    }

    private bool IsValidIpAddress(string ipAddress)
    {
        return (ipAddress == "127.0.0.1");
    }

    public void Dispose() { /* clean up */ }
}

, После того как класс HTTP-модуля создается, необходимо зарегистрировать его в httpModules разделе web.config файла, как это:

<configuration>
    <system.web>
        <httpModules>
            <add name="SecurityHttpModule" type="SecurityHttpModule"/>
        </httpModules>
    </system.web>
</configuration>

Это добавляет модуль к конвейеру запроса ASP.NET для Вашего веб-приложения.

16
ответ дан 30 November 2019 в 07:44
поделиться

Вот статья от Microsoft о том, как сделать это.

<час>

безопасность Папки Установки с помощью IP-адреса или Доменного имени

Apache использует Позволение, и Отрицайте, что директивы определяют сайты, которые могут получить доступ к конкретному веб-сайту или папке. Однако Apache обеспечивает управление дискреционным доступом; необходимо или отклонить все сайты и предоставить определенный список сайтов или IP-адресов, которые могут получить доступ к папке или позволить все сайты и отклонить только те сайты, что Вы не хотите иметь доступ. Например, при использовании следующей директивы все клиентские компьютеры запрещены доступа, если они не распознаны как часть домена domain.com:

Отклоняют от всего
, Позволяют из .domain.com

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

Определяют Управление доступом для Определенной Папки или Сайта

  • Вход в систему к компьютеру веб-сервера как администратор.
  • Нажимают Start, указывают на Настройки и затем нажимают Control Panel.
  • Дважды щелкают по Administrative Tools и затем дважды щелкают по Internet Services Manager.
  • , Если Вы хотите ограничить доступ для целого сайта, выберите веб-сайт из списка различных обслуживаемых сайтов в левой панели.

  • , Если Вы хотите ограничить доступ только для определенной папки, нажмите папку, которой Вы хотите управлять.

  • Щелкают правой кнопкой по веб-сайту или папке, и затем нажимают Properties.
  • Щелчок панель Directory Security.
  • , Если Вы хотите ограничить доступ к определенному набору сайтов, но запретить доступа ко всем другим сайтам, нажмите Denied Access.
  • , Если Вы хотите предоставить доступ всем клиентам по умолчанию, но исключить определенный список клиентов, нажмите Granted Access.
  • Для обновления списка хостов или доменов в Кроме списка нажмите Add.
  • Для добавления одиночного компьютера к списку нажмите Одиночный компьютер, введите IP-адрес в соответствующем поле и затем нажмите "OK".
  • Для добавления диапазона компьютеров в определенном диапазоне адресов нажмите Group компьютеров, введите IP-адрес для сети в соответствующем поле, введите маску подсети для сетевого диапазона, который Вы хотите настроить, и затем нажать "OK".
  • Для добавления компьютеров их определенным доменным именем нажмите Доменное имя и затем введите доменное имя в соответствующем поле.
  • Нажимают Properties, вводят доменное имя и затем нажимают "OK".
  • Нажимают "OK" и затем нажимают "OK".

ПРИМЕЧАНИЕ : при использовании ограничений доменного имени сервер должен выполнить обратный поиск DNS для каждого запроса для проверки зарегистрированного доменного имени хоста. Microsoft рекомендует использовать IP-адрес или сетевой диапазон каждый раз, когда Вы можете.

9
ответ дан 30 November 2019 в 07:44
поделиться