Monday, 29 July 2019

CORS: Pengenalan, Policy, Dan Cara Konfigurasinya (Node JS Express)

penjelasan mengenai cors dan cara mengatasinya di node js - Halo teman teman! Selamat datang kembali di artikel TB kali ini. Tentunya dengan informasi baru seputar teknologi dan internet. Kali ini kita akan membahas sebuah teknologi web yang berikaitan dengan request dan response data.

Didalam teknologi pengembangan web modern, website sudah tidak bisa berkembang secara sendiri. Website yang sudah berkembang cukup besar biasanya membagi sistem kerja dengan sebutan microprocess. Atau bisa dibilang sebagai sistem web yang dipecah menjadi bagian-bagian kecil untuk memudahkan kerja sama antar tim developer. Bagian-bagian kecil dalam sistem web ini yang nantinya disatukan oleh jembatan bernama A.P.I (application program interface).

Tentunya dalam bertransaksi data, diperlukan sedikit perjalanan panjang pada proses sistem. Dan jika kita sudah masuk ke dalam transaksi data/informasi, maka kita tentunya akan mengenal istilah request dan response server.


Request adalah proses mengirimkan sebuah program ke server lain. Server akan mengolah program yang dikirim oleh request sesuai dengan fungsinya. Setelah tugasnya selesai, server akan mengirimkan timbal balik (return dari proses) ke komputer yang mengirim request. Aktivitas ini disebut dengan response.

Request
Secara garis besar, request terbagi menjadi 4 tipe/method.

  1. GET
    Method ini digunakan untuk mengirimkan request yang nantinya mengharapkan response berupa sebuah data. Bisa dibilang method ini digunakan untuk meminta data tertulis ke server
  2. POST
    Method ini digunakan untuk mengirimkan request berupa data untuk diolah oleh server.
  3. PUT
    Method ini digunakan untuk mengirim satu request (biasanya berupa id) yang nantinya akan diolah oleh server sebagai acuan pencarian. Server bisa melakukan update data dengan method ini.
  4. DELETE
    Method ini digunakan untuk mengirimkan satu request (biasanya berupa id) yang nantinya akan diolah oleh server untuk acuan pencarian, dan langsung menghapus datanya dari server.
Response
Response bisa berbentuk apa saja. Namun yang paling umum adalah berbentuk JSON (Javascript Object Notation). Seperti yang saya bilang tadi, server yang telah menerima request akan mengirimkan response setelah mengolah data yang dikirimkan.

CORS (Cross-Origin Resource Sharing)
Dalam mengirim request, tentunya ada sebuah perantara yang menghubungkan client (pemberi request) dan server (pemberi response). Perantara itu disebut sebuah middleware bernama CORS. CORS adalah software yang mengizinkan sebuah request untuk mengirimkan method POST, GET, PUT, dan DELETE ke server. CORS adalah versi pengembangan dari software sebelumnya bernama JSONP yang hanya support method GET. Semua browser saat ini sudah menggunakan CORS sebagai jembatan penghubung antara client dengan server

CORS Policy
Adanya request ke server, secara istilah berarti kita membuat sebuah jembatan penghubung antara client dengan server. Tentunya kita tidak ingin jembatan penghubung ini dilalui oleh orang asing. Artinya, jangan sampai seseorang dari server lain yang tidak dikenal bisa berkomunikasi dengan server kita melalui request API. Hal ini sangat berbahaya bagi keamanan. Oleh karena itu, diciptakan lah sebuah kebijakan atau aturan CORS yang disebut CORS Policy

Kita bisa memerintahkan server untuk menerima request hanya dari client tertentu. Jika ada request dari client yang tidak dikenal, maka otomatis terblokir. Contohnya seperti ini.


Hal ini berarti bahwa server google tidak menerima request dari client saya yang pada hal ini berlokasi di domain http://localhost:8080

Origin & Header
CORS Policy memiliki 2 komponen penting. Yaitu origin dan header.

Origin adalah DNS/domain dari client yang diizinkan untuk mengakses server. Jadi kita bisa setting di server kita untuk mengizinkan request dari origin tertentu.

Header adalah bentuk method request yang diizinkan untuk DNS/domain tertentu yang kita atur dalam origin.

Lalu, bagaimana cara mengatur atau konfigurasi origin dan header dalam sebuah server?
Saya akan mencontohkan bagaimana cara mengatur privasi API dalam server. Dalam hal ini saya manggunakan Node JS dengan framework backend Express.

1. Install Cors Package di NPM
Silahkan install node package bernama cors dengan perintah terminal berikut ini.

npm install cors

2. Menjalankan Cors
Kita bisa menjalankan package cors hanya dengan memasukan atau requiring package ke file main kita, lalu use menggunakan express.


const express = require('express')
const app = express()

const cors = require('cors')
app.use(cors())

3. Mengatur Origin Yang Diizinikan
Untuk mengatur origin yang diizinkan, kita bisa atur didalam function cors() didalam app.use().


app.use(cors({

    origin: 'http://NAMA_DNS_NYA.com'

}))


Untuk menambah origin lebih dari satu, kita bisa membungkus object didalam array. Berikut ini contohnya

app.use(cors([
{origin:'http://NAMA_DNS_1.com'},
{origin:'http://NAMA_DNS_2.com'},
{origin:'http://NAMA_DNS_3.com'},
]))

Secara default, kita mengizinkan semua method untuk dilakukan semua origin.

Untuk belajar lebih lengkap tentang konfigurasi cors di node js seperti mengatur hak akses masing-masing origin, bisa dicek di dokumentasi resmi npmjs cors

Oke, sekian artikel kali ini tentang pengenalan cors, policy, dan cara konfigurasiya. Semoga bermanfaat! Terima Kasih!

1 komentar:

Hai, Mohon Komentar Yang Relevan Dan Tidak OOT!