Как заблокировать использование спама направления Nginx?

Вы должны настроить Mock для возврата определенного значения:

IDeliveryContext deliveryContext = // ???? - whatever you want it to be. 
                                   // Could be another Mock.
                                   // This is what the Mock will return.

Mock<IDeliveryStrategy> deliveryStrategy = new Mock<IDeliveryStrategy>();
deliveryStrategy.Setup(x => x.GetDeliveryCodeStrategy(It.IsAny<decimal>()))
    .Returns(deliveryContext);

Это говорит Mock, что, когда вызывается его метод GetDeliveryCodeStrategy, он должен вернуть указанное [ 114]. В зависимости от того, что вы пытаетесь сделать, это может быть другое Mock. (Насмешки, которые возвращают насмешки, нежелательны, но если вы начинаете, я бы оставил эту деталь и вернулся к ней.)

Я предполагаю, что percentage - это decimal. It.IsAny<decimal>() означает, что макет не имеет значения, какова ценность. Обычно это нормально, потому что вы тестируете то, что ваш класс делает с объектом, возвращаемым макетом.

9
задан Jesse 19 January 2009 в 23:38
поделиться

2 ответа

https://calomel.org/nginx.html

Блокируйте большую часть "спама ссылающегося домена" - "больше раздражения, чем проблема"

nginx.conf

    ## Deny certain Referers (case insensitive)
    ## The ~* makes it case insensitive as opposed to just a ~
 if ($http_referer ~* (babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|poweroversoftware|sex|teen|video|webcam|zippo))
    {  return 403;   }
10
ответ дан 4 December 2019 в 11:08
поделиться

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

Они способ, которым я работал вокруг проблемы, состоял в том, чтобы сделать мою логику (Направляющие в Вашем случае) делают блокирование... Но длинный путь вокруг:

  • Имейте свою логику, поддерживают черный список, поскольку новая строка разделила файл простого текста.
  • Создайте удар (или другой) сценарий как корень, чтобы считать этот файл и добавить его listees к черному списку Вашего брандмауэра
  • Создайте задание крона для вызова сценария, снова, как корень

Причина я делаю это этот путь вокруг (вместо того, чтобы просто дать полномочия Django изменить конфигурацию брандмауэра) просто: безопасность. Если бы мое приложение было взломано, то я не хотел бы, чтобы оно повредило что-либо еще.

Сценарий удара - что-то вроде этого:

exec < /path/to/my/djago-maintained/block-list
while read line
do

    iptables -A INPUT --source $line/32 -j DROP

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

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