112 Jurnal Teknik Informatika dan Sistem Informasi ISSN 2407-4322 Vol. 10, No. 3, September 2023, Hal. 112-119 E-ISSN 2503-2933
http://jurnal.mdp.ac.id          jatisi@mdp.ac.id

## Perlindungan Form Website Pada Framework Flask Dengan Metode Regular Expression
Mahendra Chevro Susanto
Teknik Informatika, Universitas Bina Insani; Jl. Raya Siliwangi No.6 Rawa Panjang Kota Bekasi, fax 021-82436886 e-mail: campus.mchevro@gmail.com

## Abstrak
Penelitian  ini  bertujuan  untuk  mengetahui  penggunaan  metode  regular  expression dalam melindungi form website pada framework flask. Pola regular expression yang digunakan dalam penelitian ini ialah ^[a-zA-Z0-9@]+$. Dalam penelitian ini, pengujian dilakukan dengan menggunakan metode black box testing Teknik Equivalence Partitioning untuk membuat kriteria pengujian  dalam  inputan  form  website.  Hasil  pengujian  black  box  testing  menghasilkan  dua harapan ialah “Data Aman” dan “Data Tidak Aman”. Hasil penelitian ini menunjukan bahwa penggunaan metode Regular Expression dalam perlindungan form website dapat menjadi opsi pilihan  untuk  memfilter  inputan  form.  Dengan  Regular  Expression  memungkinkan  untuk melakukan  validasi  data  yang  diinput  pengguna  dan  mencegah  inputan  berbahaya  dengan menghapus karakter-karakter yang tidak valid.
Kata kunci : Ekspresi Reguler, Framework Flask, Python, Cross Site Scripting, Injection

## Abstract
This  research  aims  to  find  out  the  use  of  regular  expression  methods  in  protecting website forms on the flask framework. The regular expression pattern used in this research is ^[a-zA-Z0-9@]+$.  In  this  study,  testing  was  carried  out  using  the  black  box  testing  method Equivalence Partitioning technique to create test criteria in website form input. The results of black  box  testing  produce  two  expectations,  namely  "Secure  Data"  and  "Insecure  Data".  The results  of  this  study  indicate  that  the  use  of  the  Regular  Expression  method  in  website  form protection  can  be  an  option  for  filtering  form  input.  Regular  Expression  makes  it  possible  to validate the data inputted by users and prevent malicious input by removing invalid characters.
Keywords : Regular Expression, Framework Flask, Python, Cross Site Scripting, Injection

## 1. PENDAHULUAN
Keamanan  merupakan urusan  yang  esensial  dan  utama  yang  harus  diperhatikan dalam merancang  aplikasi  Web.  Data  maupun  informasi  menjadi  sasaran  bagi  penyerang  untuk disalahgunakan,  maka  dari  itu  sangat  penting  untuk  menjaga  integritas  data  dan  informasi. Dalam  merancang  aplikasi  web  diperlukan  sistem  yang  bisa  melindungi  data  dari  pengguna yang  tidak  berwenang.  Sistem  ini  berupa  proses  login  untuk  identifikasi  akun  pengguna  yang benar-benar sah.
Namun  membuat  proses  login  saja  tidak  cukup  karena  banyak  macam  jenis-jenis serangan yang digunakan oleh orang tidak bertanggung jawab untuk bisa masuk ke aplikasi web tanpa  harus  otentikasi  data  [1].  Teknik  yang  paling  popular  sampai  saat  ini  ialah  serangan
Jatisi                             ISSN 2407-4322 Vol. 10, No. 3, September 2023, Hal. 112-119 E- ISSN 2503-2933 113
Title of manuscript is short and clear, implies research results (First Author)
Injeksi SQL. Sekitar 274 ribu aplikasi berhasil dibobol dengan menggunakan Teknik Injeksi dan menjadi kerentanan teratas urutan nomor tiga dalam catatan OWASP 2021.
Gambar 1. Daftar Kerentanan Paling Populer Tahun 2021
Berdasarkan gambar 1, terlihat daftar top 10 kerentanan paling popular yang bersumber dari  komunitas  Open  Web  Application  Security  Project  (OWASP)  yakni  komunitas  yang berpusat di Meryland Amerika Serikat yang didirikan oleh Mark Curphey dan Dennis Groves. Proyek  ini  bertujuan  untuk  meningkatkan  keamanan  perangkat  lunak  aplikasi  yang  dilakukan dari  pengujian  OWASP  menggunakan  parameter  penilaian  yang  berfungsi  untuk  mengukur tingat suatu resiko kerentanan [2].
Selain Teknik injeksi SQL ada juga Teknik lain yaitu Cross Site Scripting (XSS). XSS merupakan Teknik yang melakukan pengiriman payload berupa kode javascript yang disisipkan pada suatu inputan Website. XSS menyerang  kelamahan website yang tidak memvalidasi data inputan yang dikirimkan oleh pengguna. Pengaruh dari Teknik XSS yakni seorang peretas dapat mendapatkan  hak  akses  website  yang  nantinya  dapat  melihat  isi  data  dan  informasi  milik pengguna  lain  [3].  Berdasarkan  hasil  dari  penelitian  yang  dilakukan  oleh  [4],  pencegahan serangan  injeksi  SQL  dapat  dikukan  dengan  membuat  suatu  validasi  yang  dapat  mendeteksi adanya  string  query  (select,  #,  --  -,  from  where)  maka  sistem  akan  menolak  permintaan  dari client. Selanjutnya untuk pencegahan serangan XSS dapat membuat validasi penggunaan simbol seperti  (“<>”,  “/”)  pada  form  input,  maka  payload  XSS  tidak  dapat  aktif  didalamnya  [4]. Adapun  yang  dikemukakan  oleh  [1]  bahwa  melakukan  mitigasi  serangan  oleh  orang  tidak bertanggung  jawab  yakni  memberikan  filter  dari  kode  sumber  sampai  dengan  menggunakan verifikasi robot.
Dari penelitan yang dilakukan oleh [5] rekomendasi pengamanan website dari serangan injeksi  SQL  yakni  form  inputan  harus  dilakukan  sanitasi  untuk  membersihkan  karakter  selain huruf  alphabet  dan  angka.  Ini  dilakukan  karena  peretas  menggunakan  Payload  berupa  spesial karakter yang dimasukkan ke dalam form website. Penelitian yang dilakukan oleh [6] salah satu metode  yang  digunakan  untuk  mengamankan  form  webiste  ialah White  List  input  Validation , metode  tersebut  melibatkan  penggunaan  daftar  putih  untuk  memvalidasi  input  yang  diterima oleh  form.  Dalam  penelitian  ini  untuk  melakukan  sanitasi  atau  filter  inputan  menggunakan metode Regular Expression untuk membuat pola kalimat yang diizinkan kedalam form website. Sehingga  percobaan  terhadap  semua  kemungkinan  pola  tidak  perlu  dilakukan.  Regex  sudah
114 Jatisi ISSN 2407-4322 Vol. 10, No. 3, September 2023, Hal. 112-119 E-ISSN 2503-2933
banyak  didukung  oleh  Bahasa  pemrograman  seperti  PHP,  Perl,  Golang,  Python  dan  lain-lain. Regex sangat bisa diandalkan karena dapat mencari sebuah penggalan kata dan pada level tinggi Regex bisa memanipulasi data seperti mencari, menghapus dan merubah data [7].
Terdapat  beberapa  Bahasa  pemrograman  yang  bisa  digunakan  untuk  membuat  suatu sistem informasi berbasis Website. Salah satu Bahasa pemrograman yang saat ini mulai popular digunakan  untuk  membuat  aplikasi ialah  Python  [8]. Python  merupakan  Bahasa  pemrograman yang banyak digunakan oleh para programmer untuk mengembangkan aplikasi dengan berbagai macam  bidang,  khususnya  yang  berurusan  dengan  matematika  dan  sains.  Aplikasi  yang  dapat dibuat  bisa  dalam  bentuk  console,  GUI,  dan  Web  [9].  Untuk  membuat  aplikasi  berbasis  web, ada  beberapa  framework  yang  dapat  digunakan  oleh  pengembang  agar  mempermudah  dan mempercepat  proses  pembuatan  aplikasi  web,  diantaranya:  Django,  Flask,  Bottle,  CherryPy, Web2Py, Pyramid dan lain-lain. Dari beberapa framework, yang popular dan banyak digunakan oleh pengembang ialah Django dan Flask [8].
Dalam  penelitian  ini,  akan  dibuat  simulasi  berbasis  Website  yang  akan  dibangun menggunakan  framework  Flask.  Flask  merupakan  kerangka  kerja  yang  dibuat  untuk mempermudah para pengembang aplikasi web. Flask dikembangkan oleh Armin Ronacher yang memimpin  International  Team  of  Python  Enthusiasts.  Contoh  perusahaan  yang  sudah menggunakan  Flask  sebagai  framework  aplikasi  ialah:  Pinterest,  LinkedIn  dan  Youtube. Adapun  pustaka  tambahan  yang  digunakan  dalam  penelitian  ini  ialah  Flask-WTF  dan  modul bawaan  dari  python  yang  disebut  re,  sebagai  penggunaan  Regular  Expression.  Flask-WTF merupakan Pustaka sumber terbuka yang dibuat dengan Bahasa pemrograman Python. Saat ini sudah digunakan lebih dari 128 ribu pengguna github dan merilis versi 1.0.0 pada tahun 2021. Pustaka  ini  banyak  digunakan  karena  sudah  terintegrasi  dengan  Flask  dan  WTForms  untuk mengamankan  Form  dalam  Website.  Fitur  yang  ada  dalam  Pustaka  ini  meliputi:  Secure  Form With CSRF Token, Global CSRF Protection, reCAPTCHA, dan File Upload.
Pada  penelitian  yang  dilakukan  oleh  [10]  hasil  pengujian  dilakukan  menggunakan program Java dengan kelas java.util.regex.Matcher dan java.util.regex.Pattern yang merupakan bagian  dari  pustaka  Java  untuk  bekerja  dengan  Regular  Expressions.  Dalam  penelitian  ini menggunakan  Pustaka  Flask-WTF  sebagai  pemrosesan  data  dari  form  website.  Modul  re berfungsi  untuk  mendefinisikan  sebuah  pola  pencarian  yang  biasa  disebut  dengan  Regular Expression  (Regex),  yang  nantinya  digunakan  dalam  penelitian  ini  untuk  memfilter  karakter sensitif dalam pemrosesan form website.
Penelitian  ini  memiliki  tujuan  untuk  mengetahui  apakah  regex  bisa  melindungi  form dari  serangan  injeksi  SQL  dan  XSS  atau  tidak.  Sehingga  penelitian  ini  dapat  diterapkan  oleh developer  sebagai  opsi  untuk  menjaga  keamanan  form  dalam  website  menggunakan  metode Regular Expression sebagai mitigasi serangan oleh peretas.

## 2. METODE PENELITIAN
Metode yang digunakan dalam penelitian ini yakni Regular Expression (Regex) sebagai filter  karakter  yang  tidak  diizinkan  dalam  form  website  dan  untuk  pengujian  keamanan menggunakan  Teknik  black  box  testing  dengan  tujuan  menentukan  apakah  hasil  dari perlidungan  dengan  regex  dapat  berfungsi  dengan  baik  atau  tidak.  Untuk  pembuatan  simulasi website  menggunakan  Bahasa  pemrograman  Python  dan  framework  yang  digunakan  yaitu Flask.  Adapun  Pustaka  tambahan  yakni  Flask-WTF  untuk  pemrosesan  dan  validasi  data  dari form website. Selanjutnya akan dijelaskan lebih rinci apa saja kegunaan metode dan alat yang digunakan dalam penelitian ini.
Jatisi                             ISSN 2407-4322 Vol. 10, No. 3, September 2023, Hal. 112-119 E- ISSN 2503-2933 115
Title of manuscript is short and clear, implies research results (First Author)

## 2.1 Regular Expression (Regex)
Regular  Expression  atau  yang  dikenal  dengan  sebutan  Regex  adalah  rangkaian  kata yang  didefinisikan  berdasarkan  pola  yang  dibuat  sehingga  pola  tersebut  bisa  digunakan  untuk mencocokan, menemukan, dan mengelola teks [11]. Konsep Regex diperkenalkan oleh Stephen Colo Kleene, matematikawan asal Amerika yang dimulai pada tahun 1950an [12]. Fungsi dari regex untuk mendeteksi suatu pola dinamis dalam rangkaian kata. Adapun Untuk membuat pola regex  perlu  mengetahui  beberapa  dasar  dari  meta  karakter  yang  nantinya  digunakan  untuk membuat  suatu  pola  string.  Tabel  1  menjelaskan  beberapa  dasar  dari  meta  karakter  di  dalam regex.
Tabel 1. Meta Karakter Regex Karakter Keterangan Contoh Hasil ^ Awal Kata ^kam kamu, kampus, kampung [ ] Satu Set Karakter [a-m] [‘k’,’a’,’m’], [‘k’,’a’,’m’], [‘k’,’a’,’m’,’g’] . Semua Karakter, Kecuali Baris Baru ka.p.s [‘kampus’] $ Akhir Kata kampus Semua  kata  yang  diakhiri dengan ‘kampus’ | Operasi OR kuliah|kampu s Kata yang mengandung ‘kuliah’ atau ‘kampus’ + Tambah (ab)+ ab, abab, ababab
Dapat  dilihat  pada  tabel  1  beberapa  meta  karakter  untuk  membuat  pola  regex.  Dalam penelitian ini menggunakan meta karakter ^ [] dan $, yang nantinya digunakan untuk memfilter teks  yang  diperbolehkan  dalam  form  aplikasi  web.  Jadi  pola  regex  yang  digunakan  dalam penelitian  yakni  ^[a-zA-Z0-9@]+$,  yang  artinya  hanya  huruf  kecil,  huruf  besar,  angka  dan simbol @ saja yang diperbolehkan untuk diinput.

## 2.2   Black Box Testing
BlackBox  merupakan  pengujian  aplikasi  tanpa  harus  mengetahui  aplikasi  lebih  rinci, seperti  bagaimana  proses  penyajian  data  keluaran  pada  sistem  yang  dibuat  [13].  Metode  ini berfokus  pada  keluaran  hasil  dari  programnya,  bukan  dari  bagaimana  proses  program  itu berjalan.  Jenis  pengujian  BlackBox  yang  digunakan  dalam  penelitian  ini  yaitu  Equivalence Partitioning (EP).
Teknik Equivalence Partitioning adalah pengujian yang berdasarkan inputan data pada setiap form dalam aplikasi [14]. Dalam penelitian ini untuk mendapatkan hasil pengujian akan dibuatkan rancangan tabel Test Case yang berfungsi untuk menyimpulkan apakah form berhasil dalam pengujian kriteria tersebut atau tidak.
116 Jatisi ISSN 2407-4322 Vol. 10, No. 3, September 2023, Hal. 112-119 E-ISSN 2503-2933
Gambar 2. Demo Form Login
Berdasarkan  form  login  pada  gambar  2  terdapat  beberapa  rencana  pengujian.  Untuk rencana  pengujian  Username  Ketika  memasukkan  data  akan  valid  jika  diisi  dengan  masukan huruf  abjad  dan  angka  maupun  gabungan  dari  huruf  atau  angka  seperti  “user123”,  selain  itu akan terdeteksi tidak valid dan akan muncul pemberitahuan “Data Tidak Aman”.
Rencana  pengujian  Password  ketika  memasukkan  data  akan  valid  jika  diisi  dengan masukan  huruf  abjad,  angka  dan  spesial  karakter  hanya  simbol  @  maupun  gabungan  seperti “pass@123”, selain itu akan terdeteksi tidak valid dan akan muncul pemberitahuan “Data Tidak Aman”.
Tabel 2. Rancangan Test Case Form Login ID Penjelasan Hasil yang Diharapkan LGN1  Mengisi Username dengan “user123” dan password “pass@123” kemudian klik button Login. Menampilkan pemberitahuan “Data Aman” karena sesuai dengan kriteria yang diizinkan. LGN2  Mengisi Username dengan “user123” dan password “pass123” kemudian klik button Login Menampilkan pemberitahuan “Data Aman” karena sesuai dengan kriteria yang diizinkan.
Pada  tabel  2,  rancangan  test  case  dibuat  seperti  biasa  saja  dalam  artian  data  yang dimasukkan oleh user masih normal. Pada tabel 3 akan dibuat rancangan test case yang berisi payload  yang  umum  dimasukkan  oleh  peretas  untuk  memeriksa  apakah  sistem  memiliki  celah pada Form input atau tidak.
Tabel 3. Rancangan Test Case Payload
ID Penjelasan Hasil yang Diharapkan PYL1 Mengisi Username dengan “<script>alert(1)</script>” dan Password  “pass123”  kemudian  klik button Login. Menampilkan pemberitahuan “Data Tidak Aman” karena tidak sesuai dengan kriteria yang diizinkan. PYL2 Mengisi  Username  dengan  “user123” dan Password Menampilkan pemberitahuan “Data Tidak Aman” karena tidak sesuai dengan kriteria
Jatisi                             ISSN 2407-4322 Vol. 10, No. 3, September 2023, Hal. 112-119 E- ISSN 2503-2933 117
Expression]
Title of manuscript is short and clear, implies research results (First Author)
“<script>alert(1)</script>”  kemudian klik button Login yang diizinkan. PYL3 Mengisi  Username  dengan  “"  OR  1  = 1  --  -“  dan  Password  “pass123” kemudian klik button Login Menampilkan pemberitahuan “Data Tidak Aman” karena tidak sesuai dengan kriteria yang diizinkan. PYL4 Mengisi  Username  dengan  “user123” dan  Password  “"  OR  1  =  1  --  -“ kemudian klik button Login Menampilkan pemberitahuan “Data Tidak Aman” karena tidak sesuai dengan kriteria yang diizinkan. 3. HASIL DAN PEMBAHASAN
Berdasarkan rencana pengujian yang telah dibuat pada bagian metode penelitian, dapat dilihat hasilnya pada tabel 4 dibawah ini.
Tabel 4. Rancangan Test Case Payload ID Hasil yang Diharapkan Hasil Pengujian LGN1 Menampilkan  pemberitahuan  “Data Aman”  karena  sesuai  dengan  kriteria yang diizinkan. Data  berhasil  diinput  dan  sesuai  dengan yang diharapkan LGN2 Menampilkan  pemberitahuan  “Data Aman”  karena  sesuai  dengan  kriteria yang diizinkan. Data  berhasil  diinput  dan  sesuai  dengan yang diharapkan PYL1 Menampilkan  pemberitahuan  “Data Tidak  Aman”  karena  tidak  sesuai dengan kriteria yang diizinkan. Data  tidak  berhasil  diinput  dan  sesuai dengan yang diharapkan PYL2 Menampilkan  pemberitahuan  “Data Tidak  Aman”  karena  tidak  sesuai dengan kriteria yang diizinkan. Data  tidak  berhasil  diinput  dan  sesuai dengan yang diharapkan PYL3 Menampilkan  pemberitahuan  “Data Tidak  Aman”  karena  tidak  sesuai dengan kriteria yang diizinkan. Data  tidak  berhasil  diinput  dan  sesuai dengan yang diharapkan PYL4 Menampilkan  pemberitahuan  “Data Tidak  Aman”  karena  tidak  sesuai dengan kriteria yang diizinkan. Data  tidak  berhasil  diinput  dan  sesuai dengan yang diharapkan

## 4. KESIMPULAN
Berdasarkan hasil pengujian pada tabel 4 dapat ditarik kesimpulan bahwa perlindungan form  website  dengan  metode  Regular  Expression  bisa  menjadi  pilihan  untuk  mengamankan form dari serangan peretas. Namun masih banyak cara untuk peretas melakukan bypass filtering yang  sudah  dideklarasikan  dengan  Regular  Expression.  Sehingga  perlu  adanya  pengembangan pola Regular Expression untuk mengamankan form inputan website.
118 Jatisi ISSN 2407-4322 Vol. 10, No. 3, September 2023, Hal. 112-119 E-ISSN 2503-2933

## 5. SARAN
Penelitian yang mendatang perlu adanya pengembangan pola regular expression untuk memperbolehkan  inputan  spesial  karakter  lebih  banyak  lagi  namun  data  inputan  masih  tetap aman dari serangan peretas. Adapun saran dari peneliti ialah membandingkan hasil pengamanan website  yang  dibuat  secara  native  menggunakan  regeluar  expression  dengan  menggunakan pustaka tambahan.

## DAFTAR PUSTAKA
[1]   S. P. Sitorus and R. A. Habibi, 2020, Teknik Pencegahan Penetrasi SQL Injeksi Dengan Pengaturan  Input  Type  Number  dan  Batasan  Input  pada  Form  Login  Website,  U-NET Jurnal Teknik Informatika, Vol. 4, No. 2, Hal 26–33.
[2] T.  Revolino  Syarif  and  D.  Andri  Jatmiko, Analisis  Perbandingan  Metode  Web  Security Ptes,  Issaf  dan  Owasp  di  Dinas  Komunikasi  dan  Informasi  Kota  Bandung ,  E-Library Unikom.
[3] M. A. Z. Risky and Y. Yuhandri, 2021, Optimalisasi Dalam Penetrasi Testing Keamanan Website  Menggunakan  Teknik  SQL  Injection  dan  XSS, Jurnal  Sistim  Informasi  dan Teknologi, Vol. 3, No. 4, Hal 215–220.
[4] Sanjaya,  I.,  Sasmita,  G.,  &  Arsa,  D.,  2020, Evaluasi  Keamanan  Website  Lembaga  X Melalui  Penetration  Testing  Menggunakan  Framework  ISSAF ,  Jurnal  Ilmiah  Merpati (Menara Penelitian Akademika Teknologi Informasi), Vol. 8, No. 2, Hal 113-124.
[5] T.  Imam,  M.  Danni,  I  Gunawan,  2022, Analisis  Serangan  dan  Keamanan  pada  SQL Injection: Sebuah Review Sistematik, JIIFKOM (Jurnal Ilmiah Informatika & Komputer), Vol. 1, No. 2, Hal 27-32.
[6] S.  Kumar,  B.  J.  Amrita,  V.  Vidyapeetham,  B.  J.  Santhosh  Kumar,  and  P.  P.  Anaswara, 2018, Vulnerability
Detection and Prevention of SQL Injection , https://www.researchgate.net/publication/346624353, Diakses Tgl 21 Juni 2023.
[7] I.  Salim,  A.  Muzakir,  and  H.  Syaputra,  2020, Perangkat  Lunak  Koreksi  Penggunaan Sumberkutipan  dan  Daftar  Pustaka  pada  Jurnal  Mahasiswa, Jurnal  Pengembangan Sistem Informasi dan Informatika, Vol. 1, No. 2, Hal 100–109.
[8] Budi Raharjo, 2017, Belajar Otodidak Flask (Framework Python Untuk Pengembangan Aplikasi Web), Informatika, Bandung.
[9] Budi  Raharjo,  2019, Kumpulan  Solusi  Pemrograman  Python,  Ed.  Revisi ,  Informatika, Bandung.
[10]   R. Senthan, E. Y. A. Charles, and S. R. Kodituwakku, 2021, Regular Expressions Based SQL  Injection  Detection ,  Vavuniya  University  International  Research  Conference,  Hal 439-442.
Jatisi                             ISSN 2407-4322 Vol. 10, No. 3, September 2023, Hal. 112-119 E- ISSN 2503-2933 119
Expression]
Title of manuscript is short and clear, implies research results (First Author)
[11]  Computer Hope, 2020, What is A Regex (Regular Expression)?,
https://www.computerhope.com/jargon/r/regex.htm, Diakses tgl 15 September 2022.
[12]   Wikipedia, 2022, Regular Expression - Wikipedia ,
https://en.wikipedia.org/wiki/Regular_expression, Diakses Tgl 15 September 2022.
[13]   A.  Latif,  2015, Implementasi  Kriptografi  Menggunakan  Metode  Advanced  Encryption Standar(Aes) Untuk Pengamanan Data Teks , Mustek Anim Ha Vol. 2, Hal 164–172.
[14]   Y.  Dwi  Wijaya  and  M.  Wardah  Astuti,  2021, Pengujian  Blackbox  Sistem  Informasi Penilaian Kinerja Karyawan PT Inka (Persero) Berbasis Equivalence Partitions , Jurnal Digital Teknologi Informasi, Vol. 4, Hal 22-26.