Rumah > Soal Jawab > teks badan
服务端提供各种功能接口供客户端调用,那么怎样才能确保请求是来自合法的客户端,而不是非法的请求呢?
怪我咯2017-04-18 10:57:00
Bagaimana anda mentakrifkan undang-undang dan haram? Di bawah rangka kerja SSO, jika anda mempunyai token, anda akan pergi ke sisi Jika ia adalah pihak ketiga, anda pasti memerlukan appid dan appsecret Jika anda memerlukan kebenaran, anda juga perlu membawa AccessToken sisi. Cara paling mudah ialah menulis pemintas IP untuk hanya membenarkan IP yang dipercayai untuk lulus , tetapi ia digunakan untuk pemintasan peringkat tinggi bagi panggilan bersama dalaman Secara umumnya, jika pihak lain menyediakan token atau appecret sah kan?
高洛峰2017-04-18 10:57:00
Apabila mereka bentuk API, untuk memastikan keselamatan API RESTful, tiga aspek utama harus dipertimbangkan:
Proses ini bukan fokus artikel ini dan tidak akan diterangkan secara terperinci Proses asas adalah seperti berikut:1. Keizinan log masuk untuk sumber terhad
1. Kebenaran log masuk untuk sumber terhad
2. Pengesahan identiti untuk permintaan
3
Format URL
Penerangan parameter
tanda=tandatangan(path?query&imei×tamp&SIGN_KEY)
Proses pengesahan
1 Pada mulanya, pelayan mempunyai SIGN_KEY bagi setiap versi Apl, dan klien mempunyai versi SIGN_KEY yang sepadan
2 Sulitkan dan dapatkan tanda
3 Apabila menghantar permintaan, hantarkannya ke pelayan bersama-sama dengan tanda
4 Pelayan terlebih dahulu mengesahkan sama ada cap waktu itu sah dianggap tidak sah tidak wujud, simpan dalam redis (cache selama 5 minit)
Cara mengelakkan gangguan data
Parameter tandatangan termasuk semua parameter permintaan asal Jika mana-mana parameter ditukar, nilai tanda akan berbeza, jadi ia tidak boleh diusik.
Memandangkan algoritma tandatangan juga mempunyai imei (ID peranti unik) dan parameter cap waktu, dan algoritma tandatangan ialah algoritma tidak boleh balik (seperti md5 atau sha1), nilai tanda untuk setiap permintaan biasa tidak Akan berulang. Pada masa ini, pelayan boleh menyimpan nilai tanda 5 minit untuk pengesahan dan penapisan semasa serangan main semula. Permintaan yang melebihi 5 minit ditapis secara langsung oleh pengesahan cap waktu.
Dengan cara ini, pengesahan permintaan dicapai untuk mengelakkan pengubahan data dan serangan main semula, tetapi adalah perlu untuk memastikan storan kunci Apl (SIGN_KEY) selamat. Kelebihannya ialah ia mudah difahami dan melaksanakannya, tetapi kelemahannya ialah ia perlu memikul tanggungjawab menyimpan kunci dengan selamat dan beban mengemas kininya secara berkala.
1) Gunakan infrastruktur SSL (iaitu HTTPS Semua penghantaran data sensitif adalah berdasarkan SSL.
2) Hanya menyulitkan beberapa data sensitif (seperti nombor akaun + kata laluan), dan tambah beberapa nombor rawak sebagai garam penyulitan untuk mengelakkan data daripada diganggu.
PHPz2017-04-18 10:57:00
Kami menggunakan algoritma penyulitan RSA Parameter data permintaan ditukar kepada json dan kemudian sijil RSA pelayan digunakan untuk menyulitkan json Permintaan http sudah mencukupi dan kunci peribadi pelayan dinyahsulitkan