Là Nonces vô dụng?


11

Đây có lẽ là một câu hỏi không phải NHƯNG nghe tôi nói - không phải là vấn đề sử dụng Nonce để bảo vệ khỏi những thứ như scrappers (phpcurl scrappers, v.v.)? Nhưng Nonce của tôi in ra trong phần đầu của tài liệu như vậy:

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

Vì vậy, nếu tôi đang xây dựng một trình cạo nhanh, tôi sẽ chỉ lấy giá trị nonce từ trang đó và sau đó sử dụng nó trong POST của mình ... làm cho toàn bộ bài tập sử dụng Nonce trở nên vô dụng ...

Tôi đang thiếu gì ở đây?


2
Nonces không liên quan gì đến nội dung cào, bạn đã có ý tưởng đó từ đâu? ..
Rarst

K vậy hãy để tôi sử dụng một ví dụ điển hình sau đó. Nonce đang được sử dụng để ngăn chặn một cuộc tấn công liên quan đến bảo mật ... kẻ tấn công vẫn có thể lấy thông tin từ trang web vì nó đang được hiển thị công khai ... wtf?
Adrian

1
Có lẽ sẽ hợp lý khi bạn viết lại câu này thành câu hỏi chung chung hơn về nonce. Quá nhiều cho các bình luận và từ ngữ ban đầu của bạn về cạo không áp dụng.
Rarst

Câu trả lời:


16

Nonces là duy nhất cho mỗi người dùng đăng nhập. Bạn không thể cạo các tập tin người dùng đã đăng nhập trừ khi bạn có cookie của họ. Nhưng nếu bạn có cookie của người dùng, bạn đã đánh cắp danh tính của họ và có thể làm bất cứ điều gì bạn muốn.

Nonces có nghĩa là để bảo vệ chống lại người dùng bị lừa làm điều gì đó họ không muốn làm, bằng cách nhấp vào liên kết hoặc gửi biểu mẫu. Vì vậy, chính họ, thực hiện hành động này (vô tình), không phải kẻ tấn công.


2

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

"Trong kỹ thuật bảo mật, nonce là một số tùy ý chỉ được sử dụng một lần để ký một giao tiếp mật mã. ... Nó thường là một giao thức xác thực ... ngẫu nhiên để đảm bảo rằng các liên lạc cũ không thể được sử dụng lại trong các cuộc tấn công."

Ý tưởng là để ngăn chặn việc gửi dữ liệu lặp lại. Bạn tạo một mã định danh duy nhất sử dụng riêng cho bạn, để khi bạn gửi dữ liệu, nó chỉ có thể được thực hiện một lần. Nó không có gì để làm với trang web của bạn. Đó là những gì trang web cạo. Làm thế nào bạn có thể phân biệt giữa một bot cào và một bot đánh cá (như Google)?


9
Tôi phải lưu ý rằng (một cách khó hiểu) các nonces WordPress có thể được sử dụng nhiều lần. Vì vậy, nó cũng không liên quan gì đến việc đệ trình lặp đi lặp lại, đó là về việc xác minh ý định của người dùng cụ thể thực hiện hành động cụ thể đối với đối tượng cụ thể.
Rarst

3
@Rarst - điểm tuyệt vời về việc tái sử dụng nonce, và thật đáng buồn là các ý kiến ​​trong mã nguồn và bản thân bộ mã chỉ ra rằng đó là khóa chỉ sử dụng một lần. codex.wordpress.org/Function_Reference/wp_create_nonce - Điều này thật tệ khi bạn phát triển một tính năng giả sử những con số đó sẽ không xác thực nhiều lần . :(
Giáo hoàng Marcus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.