Beberapa bulan terakhir marak Jurnal Online menjadi sasaran hacker pemula menjajal kemampuannya dalam megobrak-abrik sistem pada OJS. Hal ini sangat menyusahkan utamanya bagi Jurnal Manager (JM) yang sudah susah payah mengelola jurnal dan harus mengulang dari awal. Oleh karena itu pada tulisan ini dibahas Cara membuat Sistem Keamanan OJS Menghindari Hack atau Deface.
Hack atau Deface
Beberapa bulan yang lalu Jurnal Obsesi, salah satu jurnal yang saya kelola menjadi korban hacker, sehingga OJS versi 2.4.8 yang digunakan tidak bisa diakses dan ada beberapa folder yang dihapus. Setelah berdiskusi dengan beberapa rekan, maka direkomendasikan menggunakan OJS versi 3.0.2 yang merupakan versi terbaru pada bulan Februari 2017.
Beberapa langkah yang bisa dilakukan agar terhindar dari ulah orang yang tak bertanggung jawab, maka direkomendasikan oleh beberapa rekan yang tergabung dalam Relawan Jurnal Indonesia (RJI) untuk melakukan berapa langkah antisipasi mencegah para Hacker merusak system Jurnal Online.
Baca Juga: Mengatasi Error Upload File OJS 3
Langkah Sistem Keamanan OJS
- Rajin melakukan backup, bisa sebulan sekali atau seminggu sekali, agar jika terkena deface bisa direstore kembali.
- Mengganti nama folder default saat instalasi OJS, misalnya dari “files” (nama folder default) dengan nama datajournal, journal_data dan lain-lain.
- Memindahkan folder tersebut ke tempat lain; misalnya sejajar dengan folder root jurnal atau ditempat lainnya dan jangan lupa mengubah configurasi lokasi folder tersebut di file config.inc.php seperti contoh dibawah ini
;;;;;;;;;;;;;;;;;
; File Settings ;
;;;;;;;;;;;;;;;;;[files]
; Complete path to directory to store uploaded files
; (This directory should not be directly web-accessible)
; Windows users should use forward slashes
files_dir = /home/stkiptamac/data_journal
- Masalah upload file wizard. Open Joural System secara default memperbolehkan semua ekstensi file bisa terupload. Untuk membatasi ektensi file yang di upload :
Buka file PKPFileUploadWIzardHandler.inc.php
(lib/pkp/controllers/wizard/fileUpload/PKPFileUploadWIzardHandler.inc.php).
Pada function uploadFile, baris 288.
Tambahkan potongan kode berikut :
$filename = $_FILES[‘uploadedFile’][‘name’];
$ex = pathinfo($filename, PATHINFO_EXTENSION);
if($ex != ‘pdf’ && $ex != ‘doc’ && $ex != ‘docx’){
return new JSONMessage(false, “File Extension Error “);
}
Kode diatas hanya memperbolehkan file dengan ekstensi pdf, doc, dan docx
- Masalah folder permission, untuk semua folder, yang ada pada folder public, ubah permission menjadi 0571, supaya orang tidak bisa membaca isi dari folder
- Supaya folder yang dibuat ketika upload file submission juga terset permission
0571, maka :- Buka file FileManager.inc.php (lib/pkp/classes/file/FileManager.inc.php).- Pada baris 24, “define(‘DIRECTORY_MODE_MASK’, 0777);”.- Ganti menjadi “define(‘DIRECTORY_MODE_MASK’, 0751);”. - Untuk merubah format file dianggap berbahaya, contoh format .php, .phtml, .html dsb menjadi format .txt. Contoh x.php menjadi x.txt. Untuk lebih mengamankan.
jika ternyata file php atau file berbahaya lainnya masih bisa terupload.
// FIXME Check for evil
if (!isset($fileExtension) || stristr($fileExtension, ‘php’)
|| strlen($fileExtension) > 6 || !preg_match(‘/^w+$/’,
$fileExtension)) {
$fileExtension = ‘txt’;}
Jika ingin menambah kondisi yang dibutuhkan, cukup merubah kode pada
statement if.