All Products
Search
Document Center

HTTPDNS:Implementasikan akses terotentikasi

Last Updated:Mar 20, 2026

1. Latar Belakang

Untuk mencegah penggunaan tidak sah yang dapat memengaruhi penagihan Anda, kami telah merancang mekanisme otentikasi. Dokumen ini menjelaskan cara mengintegrasikannya.

2. Solusi Otentikasi

Pengguna yang sudah ada memiliki produk yang menggunakan API non-terotentikasi. Untuk memastikan kelangsungan layanan, pengguna tersebut harus tetap menggunakan API non-terotentikasi.

Oleh karena itu, kami menyediakan authenticated API yang baru. Anda dapat secara bertahap memigrasikan versi produk baru ke API ini. Ketika jumlah pengguna pada versi aplikasi lama turun ke tingkat yang dapat dikelola, Anda dapat mengaktifkan akses bertanda tangan untuk mencegah penggunaan tidak sah yang berdampak pada penagihan Anda, seperti yang ditunjukkan pada diagram berikut.

image

2.1 Rencana migrasi untuk pengguna yang sudah ada

  • Jika Anda mengaktifkan akses bertanda tangan, pengguna versi aplikasi lama tidak akan dapat mengakses layanan HTTPDNS.

  • Arahkan pengguna yang sudah ada untuk memperbarui aplikasi mereka dan bermigrasi ke API authenticated.

  • Ketika jumlah pengguna pada API non-authenticated turun ke tingkat yang dapat diterima, Anda dapat secara manual mengaktifkan akses bertanda tangan.

2.2 Rencana penggunaan untuk pengguna baru

  • Untuk mengurangi beban integrasi, akses bertanda tangan dinonaktifkan secara default.

  • Jika Anda memerlukan akses bertanda tangan, Anda dapat mengaktifkannya secara manual.

2.3 Mengelola toggle API bertanda tangan

  • Menonaktifkannya dapat menimbulkan risiko keamanan.

  • Mengaktifkan akses bertanda tangan adalah satu-satunya cara untuk mencegah biaya tak terduga akibat serangan.

3. Algoritma pembuatan signature dan mekanisme otentikasi

Peringatan

Sebelum menggunakan HTTP API, baca best practices. Jika tidak, layanan Anda mungkin gagal.

3.1 Algoritma pembuatan signature dan contoh

Authenticated API

  • http://47.74.XXX.XXX/{account_id}/sign_d

  • http://47.74.XXX.XXX/{account_id}/sign_resolve

Penting
  • Ganti {account_id} dengan ID akun HTTPDNS Anda. Anda dapat memperoleh ID ini dari Konsol HTTPDNS.

  • Anda dapat menambahkan parameter IP ke authenticated API. Menambahkan atau menghilangkan parameter ini tidak memengaruhi perhitungan signature.

  • Untuk mendapatkan daftar alamat IP layanan, lihat scheduling service API.

Algoritma Tanda Tangan

sign = md5sum( host-secret-timestamp )

Deskripsi bidang otentikasi

Field

Description

host

Host yang akan di-resolve. Gunakan nilai yang sama dengan parameter host di URL.

secret

Secret ini dihasilkan oleh server.Console > Configuration> Development configuration.

image

timestamp

Waktu kedaluwarsa signature. Ini adalah jumlah detik sejak 1 Januari 1970 (bilangan bulat positif, tepat 10 digit).

Catatan

Signature berlaku maksimal 24 jam.

Contoh signature

  • Contoh 1 (Standard resolution API):

    • Permintaan awal:http://47.74.XXX.XXX/{account_id}/d?host=www.aliyun.com

    • Asumsikan secret-nya adalah IAmASecret dan signature kedaluwarsa pada pukul 15.00.00 UTC+8 tanggal 15 Agustus 2018 (timestamp: 1534316400).

    • sign = md5sum("www.aliyun.com-IAmASecret-1534316400") = 60c71e98b6d7fcbb366243e224eab457

    • Permintaan terotentikasi:http://47.74.XXX.XXX/{account_id}/sign_d?host=www.aliyun.com&t=1534316400&s=60c71e98b6d7fcbb366243e224eab457

  • Contoh 2 (Batch resolution API):

    • Permintaan awal:

      http://47.74.XXX.XXX/{account_id}/resolve?host=www.aliyun.com,www.taobao.com

    • Asumsikan secret-nya adalah IAmASecret dan signature kedaluwarsa pada pukul 15.00.00 UTC+8 tanggal 15 Agustus 2018 (timestamp: 1534316400).

    • sign = md5sum("www.aliyun.com,www.taobao.com-IAmASecret-1534316400") = 12a3f6b1b14a46ca813ca6439beb59a4

    • Permintaan terotentikasi:http://47.74.XXX.XXX/{account_id}/sign_resolve?host=www.aliyun.com,www.taobao.com&t=1534316400&s=12a3f6b1b14a46ca813ca6439beb59a4

Kelebihan dan kekurangan solusi ini

  • Kekurangan

    • Waktu sistem klien mungkin tidak tersinkronisasi.

    • Menyimpan secret di klien menimbulkan risiko keamanan karena secret dapat terekspos.

  • Kelebihan

    • Tidak memerlukan pengambilan data dari sisi server.

3.2 Respons otentikasi

  • Jika otentikasi berhasil, kode status HTTP adalah 200 dan respons sesuai dengan API response description dalam dokumentasi single-domain resolution .

  • Jika otentikasi gagal, kode status HTTP adalah 403 atau 400. Badan respons berformat JSON dan mencakup kode kesalahan spesifik.

     { "code": "InvalidSignature" }

3.3 Referensi kode status

HTTP status code

Error code

Description

403

SignatureExpired

Timestamp telah kedaluwarsa.

403

InvalidSignature

Signature tidak valid.

400

InvalidDuration

Periode validitas signature terlalu panjang (maksimum 86400 detik).

400

InvalidSignature

Format signature tidak valid.

400

InvalidTimestamp

Format timestamp tidak valid.

400

AccountNotExists

Akun tidak ada atau dinonaktifkan.