#tuts: Mở khoá nút download khi click vào quảng cáo Adsense

mở khoá download khi click link

Chào anh em, cứ tưởng mọi người lãng quên cái blog củ chuối này của mình rồi cơ. Hoá ra nay cũng có anh em vô đọc được bài và có đề xuất mình giúp hắn một tay. OK fine!

Bài toán mở khoá nút download khi kích đường link

Cụ thể là thế này, hắn đang cần một cái code bắt người dùng phải click chuột vào quảng cáo Google Adsense trên trang, sau đó copy lại đường link đã click và dán vào ô xác nhận. Hệ thống sẽ “kiểm tra” nếu đúng thì hiển thị nút download, nếu không thì thông báo lỗi. (như hình)

Hệ thống kiểm tra xem người dùng đã click quảng cáo chưa rồi mới cho phép download
Hệ thống kiểm tra xem người dùng đã click quảng cáo chưa rồi mới cho phép download

Ôh, hoá ra đây là một hình thức lấy Paid to Click (PTC) khá khôn ngoan. Bằng cách này thì người chơi quảng cáo sẽ kiếm được kha khá đây. Tuy nhiên mình thấy kiểu này nó không được fair lắm.

Giải quyết bài toán mở khoá download trong 5 phút

Sau khoảng 5 phút thì mình cũng tìm được ra cơ chế của nó. Và dưới đây là đoạn javascript của nó để xử lý cái bài toán kia.

Nhìn thì khoai nhỉ, nghe có thẻ như đã dùng phương pháp làm rối mã để che dấu đi mã nguồn của mình. Thử với vài công cụ deobfuscation xem sao. Kết quả ta được đoạn mã sau:

Kết quả thật bất ngờ

Tiếp tục replace những biến trong hàm myFunction() với giá trị tương ứng. Cuối cùng ta có kết quả đẹp như thế này:

Phân tích một chút:

Hàm “kiểm tra” chỉ làm mỗi nhiệm vụ kiểm tra xem user nhập ký tự đầu có phải là http:// hoặc https:// không. Nếu có thì cho phép kích nút download để tải về, nếu không sẽ đưa ra thông báo “LỖI”.

Để hoàn thiện code trên, các bạn chỉ cần thêm một chút HTML với các id tương ứng là được. Và đến đây mình sẽ không chia sẻ tiếp nữa. Vì như mình đã nói, cái cách ép user click kiểu này để kiếm tiền thì mình không welcom lắm.

Sorry bạn gì đó nhé, mình chỉ giúp được đến đây thôi. Mong bạn tiếp tục ủng hộ Sharecodeweb trong tương lai. Thân ái!

Nguyễn Trung Hiếu

Một blogger ... cùi bắp! Đơn giản: tôi muốn ghi lại những gì xảy ra xung quanh, cả công việc lẫn cuộc sống và chia sẻ với các bạn đọc. Nếu bạn cảm thấy bài viết có nhiều điểm không chính xác, hãy comment và chia sẻ để tôi còn được học hỏi từ những góp ý của bạn. Email: hieunt.dcn@gmail.com