Tips Pengamanan OJS: Panduan Lengkap Mencegah Serangan Malware, Cloaking, dan Peretasan
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
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. Jika Anda mengalami hal tersebut, bersihkan file berikut:
bootstrap.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,/journals,/submission
Gunakan perintah pencarian, seperti:
1
2
3
grep -R "slot" -n .
grep -R "fetch(" -n .
grep -R "is_bot(" -n .
Cek file inti apakah masih bersih:
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 upload dan/atau files:
/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. - 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 RCE (Remote Code Execution). - Gunakan kata sandi yang kuat
Kata sandi yang kuat bertindak sebagai garis pertahanan pertama terhadap akses tidak sah ke akun dan sistem digital. - 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.
- Aktifkan ModSecurity (OWASP CRS)
- Aktifkan ImunifyAV atau Imunify360
- Nonaktifkan fungsi PHP berbahaya
1
disable_functions = exec,passthru,shell_exec,system,proc_open,popen
- Gunakan permission yang benar
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
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. Selain itu, perbarui versi OJS yang Anda gunakan secara rutin. Dengan begitu Anda dapat membuat instalasi OJS jauh lebih sulit diretas, sekaligus menjaga reputasi jurnal Anda.