Бесполезны ли Nonces?

11

Вероятно, это вопрос новичка, НО выслушать меня - не стоит ли использовать Nonce для защиты от таких вещей, как скребки (phpcurl scrappers и т. Д.)? Но мой Nonce печатает в заголовке документа так:

/* <![CDATA[ */
var nc_ajax_getpost = {
    ...stuff...
    getpostNonce: "8a3318a44c"
};
/* ]]> */

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

Что мне здесь не хватает?

Адриан
источник
2
Одноразовые номера не имеют ничего общего с очисткой контента. Откуда вы взяли эту идею? ..
Rarst
К, позвольте мне тогда использовать заурядный пример. Одноразовый номер используется для предотвращения атаки, связанной с безопасностью ... злоумышленник все еще может получить одноразовый номер с веб-сайта, поскольку он отображается публично ... wtf?
Адриан
1
Возможно, для вас было бы разумно перефразировать это в более общий вопрос о nonce. Слишком много комментариев, и ваша первоначальная формулировка о соскобах не применима.
Первый

Ответы:

16

Одноразовые номера уникальны для каждого вошедшего в систему пользователя. Вы не можете очистить одноразовые номера вошедшего в систему пользователя, если у вас нет его файлов cookie. Но если у вас есть куки пользователя, вы уже украли их личность и можете делать все, что захотите.

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

scribu
источник
2

http://en.wikipedia.org/wiki/Cryptographic_nonce

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

Идея состоит в том, чтобы остановить подачу повторных данных. Вы создаете одноразовый уникальный личный идентификатор, чтобы при отправке данных это можно было сделать только один раз. Это не имеет никакого отношения к просмотру вашего сайта. Что делает сайт соскоб. Как бы вы различали скребущий бот и траловый бот (например, Google)?

TCBarrett
источник
9
Я должен отметить, что (смущает) одноразовые выражения WordPress могут использоваться более одного раза просто отлично. Таким образом, это не имеет ничего общего с повторной отправкой, это касается проверки намерения конкретного пользователя выполнить определенные действия в отношении определенного объекта.
Rarst
3
@Rarst - превосходное замечание о повторном использовании nonce, и, к сожалению, комментарии в исходном коде и самом кодексе указывают на то, что это однократное использование только ключа. codex.wordpress.org/Function_Reference/wp_create_nonce - который отстой, когда вы разрабатываете функцию, предполагая, что эти числа не будут проверяться более одного раза . :(
Маркус Папа