Вы действительно человек? (или Как предотвратить спам) [закрытый]

Swift 4: простой загрузчик для небольших изображений (например, миниатюр), который использует NSCache и всегда работает по основному потоку:

class ImageLoader {

  private static let cache = NSCache<NSString, NSData>()

  class func image(for url: URL, completionHandler: @escaping(_ image: UIImage?) -> ()) {

    DispatchQueue.global(qos: DispatchQoS.QoSClass.background).async {

      if let data = self.cache.object(forKey: url.absoluteString as NSString) {
        DispatchQueue.main.async { completionHandler(UIImage(data: data as Data)) }
        return
      }

      guard let data = NSData(contentsOf: url) else {
        DispatchQueue.main.async { completionHandler(nil) }
        return
      }

      self.cache.setObject(data, forKey: url.absoluteString as NSString)
      DispatchQueue.main.async { completionHandler(UIImage(data: data as Data)) }
    }
  }

}

Использование:

ImageLoader.image(for: imageURL) { image in
  self.imageView.image = image
}
12
задан 7 revs, 5 users 69% 28 April 2016 в 05:29
поделиться

11 ответов

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

Это не означает, что Вы не можете или не должны использовать что-то как предварительно созданный виджет капчи. Абсолютно используйте одного из тех как пристальная точка! Это просто означает, что необходимо настроить его где-нибудь так, чтобы что-то дополнительное произошло, который является вне нормы и повредит любой существующий ранее сценарий, который мог обычно побеждать его.

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

13
ответ дан 2 December 2019 в 03:02
поделиться

alt text

От xkcd

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

Для системы КАПЧИ я сердечно рекомендую reCAPTCHA.

Традиционные машинно-генерируемые КАПЧИ будут в конечном счете быть поврежденными путем разработки достаточно интеллектуальной системы. Например, вот кто-то , кто утверждает, что повредил Google CAPTCHA, который раньше рассматривают небьющимся, с 30%-й частотой успешных обращений. reCAPTCHA, по определению, показывает, что Вы только отображаете, который не может быть распознан оптическим распознаванием символов.

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

См. здесь для дальнейшего объяснения и испытать его.

9
ответ дан 2 December 2019 в 03:02
поделиться
  • Предел количество голосов на IP-адрес во время
  • прокси анонимизирующего Блока.
  • Для голосования: Как насчет того, чтобы переставить значение, которое должно быть возвращено формой на "на основание сессии". Однажды "1" означает, что первый объект, "2" означает второе. Тогда "77" означает, что первый объект, "812" означает второе... могла быть некоторая простая математика позади сцены, но это предотвращает пользователей от просто отправки того же Запроса HTTP много раз.
  • , Что работало на меня очень хорошо: Используйте формы Ajax, не простые формы HTTP. Технически это не намного более сложно для фальсифицирования голосов, но я записал простое программное обеспечение блога, и это - только механизм Защиты от спама, должен отправить комментарии через Ajax - никакой СПАМ до сих пор.
4
ответ дан 2 December 2019 в 03:02
поделиться

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

Некоторые сказали бы, что Вы могли позволить одному голосованию на IP-адрес помогать обратиться к этому, но я играл в большое количество игр, где злонамеренные пользователи с почти-бесконечным-числом прокси игнорировали основанную на IP-адресе безопасность. Это - средство устрашения, но опытный пользователь обойдет его легко.

0
ответ дан 2 December 2019 в 03:02
поделиться

Взимайте за голоса, как они делают на некоторых телевизионных шоу "таланта" и массово разосланы полностью к банку!

Серьезно, это - действительно жесткая проблема, и когда-нибудь (возможно, скоро, если Вы послушаете Ray Kurzweil), то компьютеры сделают тестирование, чтобы отфильтровать людей. Ответы, которые я добавляю к списку, имеют очевидные недостатки, но только ради перечисления: модерирование (сделали, чтобы люди сделали тестирование), и основанное на IP отслеживание (ограничивают количество голосов от хоста).

2
ответ дан 2 December 2019 в 03:02
поделиться

Это - область исследования Человеческое Вычисление .

существует превосходное видео от Luis von Ahn здесь: http://video.google.com/videoplay?docid=-8246463980976635143

0
ответ дан 2 December 2019 в 03:02
поделиться

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

В процессе регистрации, в зависимости от ситуации, я использую выбор через почту (чтобы завершить регистрацию и подтвердить, что, по крайней мере, почтовый ящик существует), и/или КАПЧА.

От той точки на Вас может решить, может ли пользователь vonte несколько раз или правило.

Btw я не поклонник основанных на IP ограничений: существует большая ситуация, в которой сети крупной организации используют немногих IP для всех их пользователей, таким образом, риск заблокировать пользователей, которые могли голосовать, высок.

0
ответ дан 2 December 2019 в 03:02
поделиться

Существует несколько идей в ответах на Лучшая основанная на неизображении КАПЧА? вопрос, если Вы уже не видели его.

0
ответ дан 2 December 2019 в 03:02
поделиться

Я поклонник CAPTCHA "скрытого поля". Не помню, где я читал об этом, но идея такая:

  • создайте форму как обычно
  • добавьте дополнительное поле, но скройте его (например, style = "display: none" в окружающем div или строке таблицы)
  • после отправки, если поле пустое, выполните соответствующее действие (например, отправьте электронное письмо); если поле было заполнено, то это робот-отправитель

Единственный случай, когда это падает, - это если браузер пользователя не поддерживает CSS (или он отключен), что очень редко.

4
ответ дан 2 December 2019 в 03:02
поделиться
Другие вопросы по тегам:

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