Tips Pengamanan OJS: Panduan Lengkap Mencegah Serangan Malware, Cloaking, dan Peretasan
Platform Open Journal Systems (OJS) merupakan CMS berbasis PHP yang sangat populer di dunia akademik, CMS ini banyak digunakan dalam mengelola dan menerbitkan jurnal ilmiah secara daring (online). Karena kepopuleran dan celah keamanan yang dimilikinya, OJS menjadi target bagi peretas yang melakukan serangan:
- SEO Gambling Cloaking
- Header injection
- File-based malware
- Arbitrary PHP upload
- Bot scanning & brute force login
Kasus peretasan yang pernah terjadi pada OJS biasanya mengakibatkan:
- Judul jurnal di Google berubah menjadi promosi judi/slot online (judol)
- Meta description disisipi konten judi
- Halaman yang dilihat oleh pengunjung tampak normal dan baik-baik saja
- Tetapi Googlebot (dan bot lainnya) diarahkan ke halaman lain yang menampilkan konten judol (cloaking)
- File inti OJS disusupi kode berbahaya
Artikel ini merangkum tips pengamanan OJS paling penting dan praktis, berdasarkan pengalaman nyata proses pembersihan dan hardening sistem.
1. Waspadai Tanda-Tanda OJS Diretas
Beberapa indikasi OJS Anda telah terinfeksi:
- Deskripsi Google berubah menjadi seperti “SLOT”, “Gacor”, dll
- Google Search Console menampilkan pemilik baru yang tidak dikenal
- Ada file HTML verifikasi palsu di root OJS
- Terdapat akun Journal Manager atau Admin yang bukan milik Anda
- Hasil curl Googlebot berbeda dibanding tampilan browser
- File inti OJS seperti
index.phpatau/lib/pkp/include/bootstrap.inc.phpmengalami modifikasi
Jika tanda-tanda ini muncul, besar kemungkinannya OJS Anda menjadi korban Malware SEO Gambling Cloaking.
2. Perbaiki dan Bersihkan File Berbahaya
Serangan cloaking biasanya bekerja dengan cara:
- Mendeteksi apakah pengunjung adalah Googlebot
- Jika ya, malware mengirim halaman judi palsu
- Jika bukan, OJS tampil normal
- Semua dilakukan melalui file PHP yang dimodifikasi
Hal ini berdampak pada hasil pencarian di mesin pencari (Google), dimana hasil pencarian jurnal Anda akan menampilkan kontek judi/slot online (judol). Jika Anda mengalami hal tersebut, bersihkan file berikut:
index.phpdanbootstrap.inc.php(sering menjadi target injeksi, tidak menutup kemungkinan injeksi dilakukan di file lain)- file verifikasi palsu
googlexxxx.html - file PHP mencurigakan di
/public,/../files_dir,/cache,/plugins
Gunakan perintah pencarian melalui SSH dengan perintah seperti:
1
2
3
grep -R "slot" -n .
grep -R "fetch(" -n .
grep -R "is_bot(" -n .
Cek file inti apakah masih bersih. Unduh file OJS dari situs PKP, lalu bandingkan dengan instalasi OJS Anda:
1
diff -r OJS-original/ OJS-live/
Terakhir, periksa cron job mencurigakan.
3. Tambah Pengamanan dengan .htaccess
Banyak serangan OJS terjadi karena file PHP berbahaya dapat dieksekusi langsung di direktori publik. Pastikan Anda menyimpan data jurnal (direktori files) di luar direktori public_html. Di samping itu, gunakan .htaccess berikut ini di root OJS untuk meningkatkan keamanannya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
###########################################
# Security Headers
###########################################
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set X-XSS-Protection "1; mode=block"
</IfModule>
###########################################
# Force HTTPS
###########################################
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
###########################################
# RESTful URLs
###########################################
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>
###########################################
# Block Sensitive Files
###########################################
<FilesMatch "(?i)(config.inc.php|composer\.json|composer\.lock|package\.json|package-lock\.json|\.env|\.git)">
Require all denied
</FilesMatch>
Di samping itu, tambahkan .htaccess khusus di folder /public dan/atau /../files_dir:
/public/.htaccess dan/atau /files/.htaccess
1
2
3
<FilesMatch "\.(php|phtml|php5|php7|php8)$">
Require all denied
</FilesMatch>
Ini memblokir sebagian besar serangan malware berbasis upload file.
4. Hardening OJS dari Panel Admin
Beberapa langkah penting:
- Nonaktifkan pendaftaran user publik
Serangan sering dimulai dengan pembuatan akun Author/Editor palsu. Jika tidak memungkinkan untuk menonaktifkan pendaftaran mandiri, aktifkan ReCaptcha dan gunakan plugin Form Honeypot untuk menyaring bot yang melakukan pendaftaran. - Batasi role yang dapat mengunggah file dan jenis file yang boleh diunggah
Gunakan plugin Control Public Files untuk membatasi jenis file yang diizinkan untuk diunggah ke Open Journal Systems (OJS). File yang sebaiknya diizinkan untuk diunggah umumnya meliputi format standar untuk manuskrip, data tambahan, dan dokumen pendukung lainnya. Format yang paling umum dan direkomendasikan adalah:- Microsoft Word (.docx atau .doc): Ini adalah format yang paling umum digunakan oleh penulis dan editor karena kemudahan pengeditan dan peninjauan sejawat (peer-review). Format ini memungkinkan penggunaan fitur “track changes” untuk kolaborasi.
- OpenDocument Text (.odt): Alternatif sumber terbuka untuk dokumen teks yang didukung oleh berbagai perangkat lunak perkantoran.
- Rich Text Format (.rtf): Format teks yang lebih universal yang dapat dibuka oleh hampir semua program pengolah kata.
- Portable Document Format (.pdf): Format ini sangat penting. File PDF memastikan tata letak dan pemformatan dokumen tetap konsisten di berbagai perangkat dan sistem operasi. OJS sering kali menggunakan PDF sebagai versi “bukti baca” (proof) atau versi final yang diterbitkan untuk pembaca.
- Format Data Tambahan: Jika jurnal Anda menerima data pendukung (misalnya, kumpulan data penelitian, kode sumber, atau file multimedia), format yang diizinkan harus spesifik untuk jenis data tersebut, seperti:
- Spreadsheet (.csv atau .xlsx)
- Gambar (.jpeg, .png, .tiff)
- File multimedia (jika relevan, seperti .mp3, .mp4, atau .wav, meskipun ini kurang umum untuk jurnal standar)
- Nonaktifkan plugin lama yang tidak digunakan
Plugin lama adalah sumber celah keamanan seperti RCE (Remote Code Execution). - Gunakan kata sandi yang kuat
Kata sandi yang kuat bertindak sebagai garis pertahanan pertama terhadap akses tidak sah terutama ke akun journal manager dan editor. Gunakan plugin Better Password untuk mengimplementasikan kebijakan password bagi pengguna. - Pastikan
files_dirberada di luarpublic_html
Contoh aman:1
files_dir = "/home/user/ojs-files"
Contoh berbahaya:
1
files_dir = "/home/user/public_html/files"
5. Hardening Level Server
Untuk memperkuat dari sisi hosting/server:
- Pasang reCAPTCHA pada login, dengan ini brute-force attack tidak akan berhasil. Konfigurasinya dilakukan melalui file
config.inc.php. - Atur
require_validationmenjadiOnpadaconfig.inc.phpagar pengguna baru diwajibkan memvalidasi alamat email mereka sebelum menggunakan akun baru. - Aktifkan ModSecurity (OWASP CRS)
- Aktifkan ImunifyAV atau Imunify360
- Nonaktifkan fungsi PHP berbahaya
1
disable_functions = system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, proc_open, apache_child_terminate, virtual, mb_send_mail
- Gunakan permission yang sesuai agar lebih aman
1 2 3
folder 755 file 644 config.inc.php 600
- Matikan directory listing
Jika menggunakan CDN seperti HCDN, pastikan untuk purge cache setelah membersihkan malware.
6. Hardening SEO untuk Mencegah Cloaking Ulang
Tidak sedikit serangan OJS yang memodifikasi meta tag, schema JSON-LD, atau OpenGraph untuk tujuan SEO gambling.
Langkah-langkah penting:
- Periksa Google Search Console → Ownership
Hapus pemilik yang tidak dikenal. - Hapus file verifikasi Google palsu
Biasanya berbentukgoogleXXXX.html. - Gunakan URL Inspection untuk reindex ulang halaman
Ini memperbaiki deskripsi & title di hasil pencarian.
7. Lakukan Monitoring Berkala
Setelah sistem bersih, lakukan monitoring:
- Cek error log setiap 1–2 minggu
- Jalankan
grepuntuk mencari injeksi baru - Pantau Search Console
- Periksa pembaruan yang tersedia dan upgrade secara rutin ke OJS versi terbaru
Dengan menerapkan monitoring, Anda dapat mencegah dan mendeteksi serangan dengan cepat.
Kesimpulan
OJS adalah platform yang stabil dan handal, tetapi karena sifatnya yang kompleks, sering berjalan pada shared hosting, dan konfugurasi yang lemah, ia menjadi target favorit penyerang. Akan tetapi, Anda dapat meningkatkan keamanan OJS dengan melakukan beberapa hal seperti yang telah kita bahas di atas. Dengan begitu Anda dapat membuat instalasi OJS jauh lebih sulit diretas, sekaligus menjaga reputasi jurnal Anda.