Apakah Nonces Tidak Berguna?

11

Ini mungkin pertanyaan noob TAPI dengarkan saya - bukankah poin menggunakan Nonce untuk melindungi dari hal-hal seperti scrappers (phpcurl scrappers dll)? Tapi Nonce saya mencetak di kepala dokumen seperti:

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

Jadi jika saya sedang membangun scrapper cepat saya hanya akan mendapatkan nilai nonce dari halaman itu dan kemudian menggunakannya dalam POST saya ... membuat seluruh latihan menggunakan Nonce tidak berguna ...

Apa yang kulewatkan di sini?

Adrian
sumber
2
Nonces tidak ada hubungannya dengan pengikisan konten, dari mana Anda mendapatkan ide itu dari ...
Rarst
K jadi izinkan saya menggunakan contoh run-of-the-mill lalu. Nonce digunakan untuk mencegah serangan terkait keamanan ... penyerang masih bisa mendapatkan nonce dari situs web karena sedang ditampilkan kepada publik ... wtf?
Adrian
1
Mungkin masuk akal bagi Anda untuk mengubah kata ini menjadi pertanyaan yang lebih umum tentang nonce. Terlalu banyak untuk komentar dan kata-kata awal Anda tentang memo tidak berlaku.
Paling jarang

Jawaban:

16

Nonces unik untuk setiap pengguna yang login. Anda tidak dapat mengikis barang-barang milik pengguna yang masuk kecuali Anda memiliki cookie. Tetapi jika Anda memiliki cookie pengguna, Anda telah mencuri identitas mereka dan dapat melakukan apa pun yang Anda inginkan.

Nonces dimaksudkan untuk melindungi terhadap pengguna yang ditipu untuk melakukan sesuatu yang tidak mereka maksudkan, dengan mengklik tautan atau mengirimkan formulir. Jadi mereka sendiri melakukan tindakan ini (tidak sengaja), bukan penyerang.

scribu
sumber
2

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

"Dalam rekayasa keamanan, nonce adalah nomor arbitrer yang hanya digunakan sekali untuk menandatangani komunikasi kriptografi. ... Sering kali merupakan protokol otentikasi acak untuk memastikan bahwa komunikasi lama tidak dapat digunakan kembali dalam serangan replay."

Idenya adalah untuk menghentikan pengiriman data berulang. Anda membuat pengidentifikasi unik sekali pakai pribadi untuk Anda, sehingga ketika Anda mengirim data, itu hanya dapat dilakukan sekali. Ini tidak ada hubungannya dengan menjelajah situs Anda. Apa yang dilakukan pengikisan situs. Bagaimana Anda membedakan antara bot pengikis dan bot pukat (seperti Google)?

TCBarrett
sumber
9
Saya harus mencatat bahwa (membingungkan) WordPress nonces dapat digunakan lebih dari sekali saja. Jadi tidak ada hubungannya dengan pengiriman berulang juga, ini tentang memverifikasi maksud pengguna tertentu melakukan tindakan spesifik terhadap objek tertentu.
Paling lambat
3
@Rarst - poin bagus tentang nonce reuse, dan komentar-komentar dalam kode sumber dan codex itu sendiri menunjukkan bahwa itu hanya sekali pakai kunci saja. codex.wordpress.org/Function_Reference/wp_create_nonce - Yang menyebalkan ketika Anda mengembangkan fitur dengan asumsi angka-angka itu tidak akan divalidasi lebih dari sekali . :(
Marcus Pope