Media Pengembangan Web & App | by APPKEY

Pembuatan WebsiteTeknologi Web9 Tips Menjaga Keamanan Web (Web Security)

9 Tips Menjaga Keamanan Web (Web Security)

-

Last Updated on April 16, 2022 by

Anda mungkin berpikir situs Anda tidak layak diretas, tetapi situs web selalu dikompromikan. Mayoritas pelanggaran keamanan situs web bukan untuk mencuri data Anda atau mengacaukan tata letak situs web Anda, melainkan mencoba menggunakan server Anda sebagai relay email untuk spam, atau untuk membuat server web sementara, biasanya untuk melayani file yang bersifat ilegal.

Cara lain yang sangat umum untuk menyalahgunakan mesin yang disalahgunakan termasuk menggunakan server Anda sebagai bagian dari botnet, atau menambang untuk Bitcoin. Anda bahkan bisa terkena ransomware.

Peretasan biasanya sering dilakukan dengan skrip otomatis yang dibuat untuk menjelajah internet untuk tujuan mengetahui situs web yang memiliki keamanan kurang baik.

Tips untuk Menjaga Keamanan Web Perusahaan Anda

 

Artikel Terkait  SSL Murah Indonesia | Layanan dan Harganya

Berikut adalah sembilan tips utama kami untuk membantu menjaga Anda dan situs Anda tetap aman saat online.

1. Perbarui perangkat lunak secara berkala

Bagian ini memang bagian yang terlihat, tetapi memastikan Anda memperbarui semua perangkat lunak sangat penting untuk menjaga keamanan web Anda. Hal ini terutama berlaku untuk OS yang digunakan server dan perangkat lunak lainnya yang dijalankan di website Anda seperti misalnya CMS. Ketika peretas menemukan celah keamanan situs web di dalam software, mereka biasanya dengan cepat mencoba memanfaatkan kelemahan itu.

Jika Anda menggunakan hosting yang bisa dikelola dengan baik maka Anda bisa mempercayakan pembaruan keamanan untuk sistem operasi karena perusahaan hosting biasanya akan menangani masalah ini.

Jika Anda menggunakan perangkat lunak pihak ketiga di situs web Anda seperti CMS atau forum, Anda harus memastikan Anda cepat menerapkan patch keamanan apa pun. Hampir semua vendor CMS biasanya memiliki umpan RSS yang dapat merinci setiap masalah security web. WordPress misalnya, akan senantiasa memberitahukan tentang pembaruan system kepada setiap penggunanya.

Banyak pengembang menggunakan alat seperti Composer, npm, atau RubyGems untuk mengelola dependensi perangkat lunak mereka, dan kerentanan keamanan muncul dalam paket yang Anda andalkan tetapi tidak memperhatikannya adalah salah satu cara termudah untuk terjebak. Pastikan Anda selalu memperbarui dependensi Anda, dan gunakan alat-alat seperti Gemnasium untuk mendapatkan notifikasi otomatis ketika kerentanan diumumkan di salah satu komponen Anda.

2. Hati-hati terhadap injeksi SQL

 

Serangan injeksi SQL adalah ketika penyerang menggunakan bidang formulir web atau parameter URL untuk mendapatkan akses ke atau memanipulasi database Anda. Jika kita menggunakan Transact SQL standar, maka akan mudah untuk dimasukkan kueri yang untuk mengubah tabel, yang pada akhirnya bertujuan mendapatkan informasi dan menghapus data. Anda dapat dengan mudah mencegah hal ini dengan selalu menggunakan permintaan parameterised, sebagian besar bahasa web memiliki fitur ini dan mudah diimplementasikan.

Hati-hati dengan query berikut:

“SELECT * FROM table WHERE column = ‘” + parameter + “‘;”

Jika hacker mengubah parameter URL untuk meneruskan ‘atau’ 1 ‘=’ 1 ini akan menyebabkan kueri terlihat seperti ini:

“SELECT * FROM table WHERE column = ” OR ‘1’=’1′;”

Karena ‘1’ adalah sama dengan ‘1’ , hal ini memungkinkan peretas menambah kueri tambahan ke akhir SQL yang juga akan dieksekusi.

Anda dapat memperbaiki kueri ini dengan membuat parameter secara eksplisit. Misalnya, jika Anda menggunakan MySQLi di PHP, ini seharusnya menjadi:

$stmt = $pdo->prepare(‘SELECT * FROM table WHERE column = :value’);

$stmt->execute(array(‘value’ => $parameter));

3. Lindungi keamanan web Anda dari serangan XSS

Serangan skrip lintas situs (XSS) menyuntikkan JavaScript jahat ke halaman Anda, yang kemudian berjalan di browser pengguna Anda, dan dapat mengubah konten halaman, atau mencuri informasi untuk dikirim kembali ke penyerang.

Misalnya, jika Anda menampilkan komentar pada halaman tanpa validasi, maka penyerang dapat mengirimkan komentar yang berisi tag skrip dan JavaScript, yang dapat berjalan di setiap browser pengguna lain dan mencuri informasi login melalui cookie, ini akan memungkinkan penyerang  mengendalikan akun dari setiap pengguna yang melihat komentar. Kita perlu memastikan agar pengguna tidak dapat menyuntikkan konten JavaScript ke halaman situs web.

Ini adalah perhatian khusus dalam aplikasi web modern, di mana halaman sekarang dibangun terutama dari konten pengguna, dan yang dalam banyak kasus menghasilkan HTML yang kemudian juga ditafsirkan oleh kerangka kerja front-end seperti Angular dan Ember.

Framework ini menyediakan perlindungan XSS, hanya saja pencampuran server dan rendering klien juga menimbulkan celah serangan baru dan lebih rumit: tidak hanya menyuntikkan JavaScript ke dalam HTML efektif, tetapi kita juga bisa menyuntikkan konten untuk menjalankan kode dengan menambahkan arahan Angular, atau memakai Ember pembantu

Kuncinya adalah fokus pada bagaimana konten yang dibuat oleh pengguna dapat keluar dari batas yang Anda harapkan dan ditampilkan browser sebagai sesuatu yang lain dari yang Anda maksudkan.

Ini mirip dengan mempertahankan terhadap injeksi SQL. Saat menghasilkan HTML secara dinamis, gunakan fungsi yang secara eksplisit membuat perubahan yang Anda cari (mis. Gunakan element .setAttribute dan element .textContent, yang akan secara otomatis diloloskan oleh browser, daripada mengatur element .innerHTML secara manual), atau bisa juga menggunakan fungsi alat templating yang secara otomatis melakukan convert yang tepat, daripada merangkai string atau mengatur konten HTML mentah.

Alat kuat lain dalam toolbox bek XSS adalah Kebijakan Keamanan Konten (CSP). CSP adalah tajuk yang dapat dikembalikan server Anda yang memberi tahu peramban untuk membatasi bagaimana dan apa yang dieksekusi JavaScript di halaman, misalnya untuk melarang menjalankan skrip yang tidak di-host pada domain Anda, larangan terhadap inline JavaScript, atau menonaktifkan eval (). Browser Mozilla memiliki cara yang sangat baik dengan beberapa contoh pengaturannya. Ini akan mempersulit skrip penyerang untuk bekerja, meskipun bisa masuk ke halaman situs.

4. Waspadai error message

Hati-hati dengan informasi yang Anda berikan dalam pesan error. Berikan hanya kesalahan minimal kepada pengguna Anda, untuk memastikan mereka tidak membocorkan rahasia yang ada di server Anda (mis. Kunci API atau kata sandi basis data).

Jangan berikan detail yang lengkap, karena ini dapat memunculkan serangan seperti injeksi SQL menjadi lebih mudah. Simpan rincian kesalahan dalam log server Anda, dan tunjukkan kepada pengguna hanya informasi yang mereka butuhkan.

5. Validasi di kedua sisi

Validasi wajib dilakukan baik di sisi server dan browser. Browser biasanya dapat mengidentifikasi kesalahan sederhana seperti form wajib yang tidak terisi ketika pengguna memasukkan teks ke dalam field angka saja.

Namun ini dapat dilewati, dan Anda harus memastikan Anda memeriksa validasi ini dan sisi server validasi yang lebih dalam karena gagal melakukannya dapat menyebabkan kode berbahaya atau kode skrip dimasukkan ke database atau bisa menampilkan hasil yang tidak sesuai di situs web.

6. Lakukan perubahan kata sandi secara berkala

Semua orang tahu mereka harus menggunakan kata sandi yang kompleks, tetapi itu tidak berarti mereka selalu melakukannya. Sangat penting untuk menggunakan kata sandi yang kuat untuk area server dan admin situs web Anda, tetapi juga sama pentingnya untuk menekankan praktik kata sandi yang baik bagi pengguna Anda untuk melindungi keamanan akun mereka.

Sebanyak mungkin pengguna tidak menyukainya, memberlakukan persyaratan kata sandi seperti minimal sekitar delapan karakter, termasuk huruf besar dan angka akan membantu melindungi informasi mereka dalam jangka panjang.

Kata sandi harus selalu disimpan sebagai nilai terenkripsi, lebih disukai menggunakan algoritma hashing satu arah seperti SHA. Menggunakan metode ini berarti ketika Anda mengautentikasi pengguna, Anda hanya akan membandingkan nilai yang dienkripsi. Untuk keamanan situs web tambahan, merupakan ide bagus untuk meng-garam kata sandi, menggunakan garam baru per kata sandi.

Jika penyerang mencuri password Anda, menggunakan password hash dapat membantu merusak pembatas, karena tidak bisa mendekripsikan password tersebut. Yang terbaik yang bisa dilakukan seseorang adalah serangan kamus atau serangan brute force, yang pada dasarnya menebak setiap kombinasi sampai menemukan kecocokan.

Saat menggunakan kata sandi asin, proses memecahkan sejumlah besar kata sandi bahkan lebih lambat karena setiap tebakan harus dipilah secara terpisah untuk setiap garam + kata sandi yang secara komputasi sangat mahal.

Artikel Terkait  jQuery Adalah? Pengertian, Fungsi dan Contohnya

Untungnya, sebagian besar CMS menyediakan fitur keamanan website kepada manajemen pengguna, meskipun beberapa konfigurasi atau modul tambahan mungkin diperlukan untuk menggunakan password atau untuk menentukan kekuatan password minimum.

Jika Anda menggunakan .NET, maka lebih baik menggunakan penyedia keanggotaan karena sangat mudah dikonfigurasi, memberikan keamanan website default dan menyertakan kontrol readymade untuk login dan reset password.

7. Hindari unggahan file demi keamanan web Anda

Mengizinkan pengguna untuk mengunggah file ke situs web Anda bisa menjadi risiko keamanan situs web yang besar, bahkan jika itu hanya untuk mengubah avatar mereka. Risikonya adalah bahwa setiap file yang diunggah, betapapun polosnya kelihatannya, dapat berisi skrip yang ketika dijalankan di server Anda, sepenuhnya membuka situs web Anda.

Jika Anda memiliki formulir unggah file maka Anda harus memperlakukan semua file dengan curiga. Jika Anda mengizinkan pengguna untuk mengunggah gambar, Anda tidak bisa mengandalkan ekstensi file atau tipe pantomim untuk memverifikasi bahwa file tersebut adalah gambar karena ini dapat dengan mudah dipalsukan.

Bahkan membuka file dan membaca header, atau menggunakan fungsi untuk memeriksa ukuran gambar tidak mudah. Sebagian besar format gambar memungkinkan penyimpanan bagian komentar yang dapat berisi kode PHP yang dapat dieksekusi oleh server.

Jadi, apa yang bisa kita lakukan untuk pencegahan? Pada akhirnya Anda ingin menghentikan pengguna untuk dapat mengeksekusi file apa pun yang mereka unggah. Secara default, server web tidak akan mencoba untuk mengeksekusi file dengan ekstensi gambar, tetapi jangan hanya mengandalkan memeriksa ekstensi file sebagai file dengan nama image.jpg.php telah diketahui untuk dilalui.

Beberapa opsi adalah mengganti nama file saat diunggah untuk memastikan ekstensi file yang benar, atau untuk mengubah izin file, misalnya, chmod 0666 sehingga tidak dapat dieksekusi. Jika menggunakan * nix, Anda dapat membuat file .htaccess (lihat di bawah) yang hanya akan memungkinkan akses untuk mengatur file mencegah serangan ekstensi ganda yang disebutkan sebelumnya.

deny from all   

<Files ~ “^\w+\.(gif|jpe?g|png)$”>   

order deny,allow   

allow from all    

</Files>

Pada akhirnya, solusi yang disarankan adalah mencegah akses langsung ke file yang diunggah sama sekali. Dengan cara ini, semua file yang diunggah ke situs web Anda disimpan dalam folder di luar webroot atau dalam database sebagai gumpalan.

Jika file Anda tidak dapat diakses secara langsung, Anda harus membuat skrip untuk mengambil file dari folder pribadi (atau penangan HTTP di .NET) dan mengirimkannya ke browser. Tag gambar mendukung atribut src yang bukan URL langsung ke gambar, sehingga atribut src Anda dapat mengarah ke skrip pengiriman file Anda asalkan Anda mengatur jenis konten yang benar di header HTTP. Sebagai contoh:

<img src=”/imageDelivery.php?id=1234″ />    

<?php     

    // imageDelivery.php           

   // Fetch image filename from database based on $_GET[“id”]      …          

   // Deliver image to browser      

   Header(‘Content-Type: image/gif’);     

   readfile(‘images/’.$fileName);       

?>

Kebanyakan penyedia hosting berurusan dengan konfigurasi server untuk Anda, tetapi jika Anda hosting situs web Anda di server Anda sendiri, maka ada beberapa hal yang ingin Anda periksa.

Pastikan Anda punya pengaturan untukl firewall, yang bisa digunakan untuk memblokir semua port tidak penting. Jika memungkinkan, pengaturan DMZ (Zona Demiliterisasi) hanya memungkinkan akses ke port 80 dan 443 dari dunia luar. Meskipun ini mungkin tidak dapat dilakukan jika Anda tidak memiliki akses ke server Anda dari jaringan internal karena Anda perlu membuka port untuk memungkinkan mengunggah file dan untuk login dari jauh ke server yang Anda gunakan melalui SSH atau RDP.

Jika Anda mengizinkan file diunggah dari Internet hanya gunakan metode transportasi aman ke server Anda seperti SFTP atau SSH.

Jika mungkin, jalankan database Anda di server yang berbeda dengan yang ada di server web Anda. Melakukan ini berarti server basis data tidak dapat diakses langsung dari dunia luar, hanya server web Anda yang dapat mengaksesnya, meminimalkan risiko data Anda terpapar.

Terakhir, jangan lupa membatasi akses fisik ke server Anda.

8. Gunakan HTTPS untuk menjaga keamanan web

HTTPS merupakan protokol untuk memberikan security melalui Internet. HTTPS menjamin bahwa pengguna berbicara dengan server yang mereka harapkan, dan tidak ada orang lain yang bisa mencegat atau mengubah konten yang mereka lihat saat transit.

Jika Anda perlu mendapatkan data pribadi pengguna, sangat disarankan untuk hanya menggunakan HTTPS untuk pengirimannya. Formulir login sering kali akan menetapkan cookie misalnya, yang dikirimkan bersama setiap permintaan lain ke situs Anda yang dibuat oleh pengguna yang masuk, dan digunakan untuk mengautentikasi permintaan tersebut. Peretas yang mencuri ini dapat meniru pengguna dan mengambil alih sesi login mereka. Untuk menangkal serangan semacam ini, Anda harus menggunakan HTTPS untuk seluruh situs Anda.

Itu tidak lagi rumit atau mahal seperti dulu. Let’s Encrypt menyediakan sertifikat yang sepenuhnya gratis dan otomatis, yang Anda perlukan untuk mengaktifkan HTTPS, dan ada alat komunitas yang ada tersedia untuk berbagai platform dan kerangka kerja umum untuk mengaturnya secara otomatis untuk Anda.

Khususnya Google telah mengumumkan bahwa mereka akan meningkatkan Anda dalam peringkat pencarian jika Anda menggunakan HTTPS, memberikan ini manfaat SEO juga. HTTP tidak aman sedang keluar, dan sekarang saatnya untuk memutakhirkan.

Sudah menggunakan HTTPS di mana-mana? Pergi lebih jauh dan lihat menyiapkan HTTP Strict Transport Security (HSTS), header mudah yang dapat Anda tambahkan ke respons server Anda untuk melarang HTTP tidak aman untuk seluruh domain Anda.

9. Dapatkan alat keamanan web yang baik

Setelah melakukan semua cara itu, selanjutnya adalah melakukan ujicoba. Cara paling efektif untuk melakukan ini adalah melalui penggunaan beberapa alat keamanan situs web, ini sering disebut pengujian penetrasi atau pengujian pena.

Ada berbagai produk berbayar dan gratis yang bisa Anda gunakan untuk tujuan ini. Mereka bekerja dengan dasar yang mirip dengan peretas skrip karena mereka menguji semua eksploitasi yang diketahui dan mencoba untuk mengkompromikan situs Anda menggunakan beberapa metode yang disebutkan sebelumnya seperti SQL Injection.

Artikel Terkait  Apa Itu BAIK? Kenalan dengan Bahasa Pemrograman Baik Buatan Indonesia

Beberapa alat gratis yang patut dilihat:

  • Netsparker (Edisi komunitas gratis dan versi uji coba tersedia). Baik untuk menguji injeksi SQL dan XSS
  • OpenVAS Mengklaim sebagai pemindai keamanan open source paling canggih. Ini bisa untuk menguji kerentanan yang diketahui, dan saat ini sudah memindai lebih dari 25.000 situs. Tetapi bisa sulit untuk mengaturnya dan memerlukan server OpenVAS untuk diinstal yang hanya berjalan di * nix.
  • io (cek online gratis). Alat untuk melaporkan dengan cepat tajuk keamanan mana yang disebutkan di atas (seperti CSP dan HSTS) yang telah diaktifkan dan dikonfigurasikan dengan benar oleh domain.
  • Xenotix XSS Exploit Framework Sebuah alat dari OWASP (Proyek Keamanan Aplikasi Web Terbuka) yang mencakup banyak pilihan contoh serangan XSS, yang dapat Anda jalankan untuk mengonfirmasi dengan cepat apakah input situs rentan di browser seperti Chrome, Firefox dan IE.

Hasil dari tes otomatis kurang mengenakkan, karena mereka akan menampilkan banyak masalah potensial yang Anda miliki. Setiap masalah yang ditampilkan biasanya disertai dengan penjelasan yang lumayan jelas tentang potensi kerentanannya. Anda mungkin akan menemukan bahwa beberapa masalah sedang / rendah bukan masalah bagi situs Anda.

Ada beberapa langkah lebih lanjut yang dapat Anda ambil untuk secara manual mencoba kompromi situs Anda dengan mengubah nilai POST / GET. Proxy debugging dapat membantu Anda di sini karena memungkinkan Anda untuk mencegat nilai-nilai permintaan HTTP antara browser Anda dan server. Aplikasi freeware populer yang disebut Fiddler adalah titik awal yang baik.

Jadi apa yang harus Anda coba ubah pada permintaan? Jika Anda memiliki halaman yang hanya dapat dilihat oleh pengguna yang masuk maka cobalah mengubah parameter URL seperti id pengguna, atau nilai cookie dalam upaya untuk melihat detail pengguna lain. Bidang lain yang layak pengujian adalah formulir, mengubah nilai POST untuk mencoba mengirimkan kode untuk melakukan XSS atau mengunggah skrip sisi server.

Jika Anda ingin tahu lebih banyak informasi seputar teknologi pembangunan website maupun aplikasi, jangan lupa kunjungi Web App di https://appkey.id atau download aplikasinya di Google Play Store agar Anda tidak ketinggalan informasi terbaru.


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Mau posting artikel iklan?

Yuk klik dan ikuti ketentuan layanan dari kami, dapatkan penawaran paket dengan harga terbaik!

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang Website, Aplikasi, Desain, Video dan API langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Kategori

Blog Post Ranking 10

Contoh PHP Curl : 10 Hal Luar Biasa yang dapat Anda Kembangkan dengan Curl

Meningkatnya jumlah aplikasi yang pindah ke web telah membuat "HTTP Scripting" lebih sering diminta dan diinginkan. Untuk dapat secara...

Encoding Adalah : Proses Komunikasi Encoding dan Decoding

Jika kita dapat melihat percakapan antar komputer, mungkin akan terlihat seperti ini: "010110111011101011010010110". Bahasa ini disebut dengan biner, encoding...

Looping Adalah Algoritma Perulangan: Berikut Contohnya

Jika anda sudah mendalami atau sedang mendalami dunia pemrograman terdapat sebuah konsep yang dapat memudahkan anda dalam menyusun struktur...

Rekomendasi 7 Aplikasi Pembuat Animasi 3D Terbaik. Ayo Cek!

Apakah Anda bercita-cita untuk menjadi seorang animator profesional? Belajar membuat animasi kini sudah menjadi hal mudah yang bisa dilakukan...

Metadata Adalah? Fungsi dan Jenis-Jenis Metadata

Pernah mendengar istilah metadata? Mungkin, kita sering mendengar istilah metadata. Tetapi, banyak dari kita yang belum tahu arti dari metadata...

Cara Membuat Aplikasi di Playstore dengan Mudah

Membuat aplikasi di Playstore bisa Anda lakukan dengan mudah. Terdapat beberapa situs yang bisa membantu Anda untuk membuat aplikasi...

4 Cara Mengatasi Autentikasi Google Play Store dengan Cepat dan Mudah

Apakah Anda sedang mengalami masalah autentikasi Google Play Store? Permasalahan autentikasi Google Play Store adalah permasalahan umum sering dialami...

Ini Cara Mudah Membuat Redirect PHP | Seri Belajar PHP

Fungsi redirect PHP sangat banyak digunakan dalam kehidupan berwebsite alias mengelola website. Script redirect PHP banyak dipergunakan oleh user...

Cara Mudah Menambahkan Lokasi Alamat Bisnis Anda di Google Maps

Saat ingin hunting tempat makan atau tempat nongkrong terbaru, tak jarang beberapa dari Anda biasanya mendapatkan informasi terkini melalui...

Rekomendasi 10 Aplikasi Coding Android Terbaik

Ketersediaan aplikasi coding Android memang banyak dicari oleh orang-orang yang sedang atau akan memulai untuk membuat aplikasi android. Jika...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya