Вы используете !important
, чтобы быть более конкретным:
div {
border: 1px solid red;
}
.intro-description p {
margin: 0 !important;
}
Test (without margin)
Test (with margin)
или вы можете использовать более конкретные Правило CSS вместо !important
(рекомендуется):
[other elements here] div.intro-description p {
margin: 0;
}
Вы можете найти больше информации о специфичности здесь: https://developer.mozilla.org/en-US/docs / Web / CSS / Specificity
blockquote>
Разъяснение Это - завершение к другим ответам. Используя хорошую реализованную капчу вместе с использованием механизма анти"в лоб" сессии, например.
Корреспондент отметил это как принятое предположение, что капчи нечитабельны машинами (она почти права), и таким образом, это понимает отрицательные мысли, потому что люди думают, что это не полный ответ, и они правы.
Также использование хорошей реализованной КАПЧИ могло быть альтернативным путем к enpower Ваша безопасность приложений против атак перебором. существует большое разнообразие поставщиков капчи, доступных бесплатно, давайте попробуем простой способ, если Вы спешите. Также полагайте, что существуют люди, отсюда говорящие что, "о, нет! эта вещь капчи не достаточно безопасна, и они иногда правы!".
"Для тех из Вас, кто не знает, КАПЧА является программой, которая может сказать, является ли ее пользователь человеком или другим компьютером. Они - те небольшие изображения искаженного текста, который Вы переводите, когда Вы регистрируетесь в Gmail или оставляете комментарий к чьему-то блогу. Их цель состоит в том, чтобы удостовериться, что кто-то не использует компьютер для регистрации в системе в миллионах учетных записей онлайн автоматически, или.." касательно.
Я видел творческий подход к этому однажды...
Для каждой попытки входа в систему, которая перестала работать, увеличения времени локаута... экспоненциально.
attempt | lockout time
======================
1 | 2s
2 | 4s
3 | 8s
4 | 16s
5 | 32s
6 | 64s
7 | 128s
8 | 256s
9 | 512s
10 | 1024s
В теории это позволяет пользователю сделать ошибку или два, но как только это, кажется, становится попыткой "взламывания", хакер заблокирован для дольше и более длительные периоды времени.
Я (еще) не использовал это сам, но концептуально мне вполне нравится идея. Конечно, на успешном входе в систему, счетчик сбрасывается.
Ограничение того, сколько попыток, которые будут сделаны на веб-сайте, состоит в том, чтобы предотвратить грубую силу (автоматизировало), нападает на Ваш сайт. Если Вы не ограничиваете эти попытки, хакер может настроить сценарий, чтобы продолжать предполагать пароли, пока он не находит один, и это может повлиять на доступность Вашего веб-сервера.
Как правило, можно хотеть привести к таймауту пользователя (10 минут, как Вы упомянули) после 3 попыток, и заблокируйте их после 6 или 9 последовательных повторных попыток, вынудив пользователя связаться с Вами для разблокирования их учетной записи. Это помещается в место, потому что кто-то может изменить их сценарии для корректировки тайм-аута.
Для моих собственных проектов я записал обобщенную 'floodcontrol' библиотеку, которая обрабатывает этот вид вещи.
Это позволяет мне указывать, сколько попыток может быть предпринято за X количества времени. Это допускает определенное число 'льготных' попыток в скором времени, так, чтобы только действительно необычное поведение было поймано.
Я записываю в базе данных несколько вещей:
Для каждой попытки, предпринятой, я запрашиваю против частичного IP-адреса и действия, и если предыдущая была предпринята попытка в определенном окне времени затем, я увеличиваю счетчик попытки для той попытки. Если счетчик попытки превышает количество льготных попыток, позволенных затем, я проверяю, была ли последняя попытка в течение X секунд после теперь и если так, возвратите false - поэтому, действие будет заблокировано (и пользователю скажут ожидать X секунд прежде, чем попробовать еще раз). Если счетчик попытки ниже количества льготных попыток затем, я возвращаю true и позволяю ему скользить.
Если человек с тем же IP приедет позже, то предыдущее количество попытки не будет выбрано, потому что это будет слишком длинно назад.
Если пользователи могут установить свои собственные пароли, некоторый бот/ребенок попытается войти в систему со списком общих паролей и успешно выполниться. И если они не будут знать пользователей, то они попробуют общие названия как администратор, simon, rico, и т.д.
Это не помогает просто отметить пользователя на сессии, поскольку они могут просто удалить cookie или запросить параметрический усилитель на их конце. У Вас должно быть количество неудавшихся попыток входа в систему и для IP и для имени для входа в систему. Возможно, будьте более прощающими для IP, поскольку это может быть общим для многие пользователи.
Да, необходимо защитить учетные записи от сложных атак перебором - как в, с помощью ботов и файлов словаря - вниз кому-то просто пытающемуся предположить пароль учетной записи.
Я считаю, что помещение счетчика 'неудачных попыток' в DB было бы самым безопасным и самым легким способом пойти. Тем путем пользователь не может обойти его (путем отключения куки). Сброс на успешном входе в систему, конечно.