x

Bab utama

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Panduan memulai cepat - LimeSurvey 3.0+
  3. Instalasi - LimeSurvey CE
  4. Cara merancang survei yang baik (panduan)
  5. Memulai
  6. Mengelola LimeSurvey
  7. Survei - pengantar
  8. Pengaturan survei
  9. Menu survei
  10. Struktur survei
  11. Pertanyaan - pengantar
  12. Grup pertanyaan - pengantar
  13. Survei - manajemen
  14. Opsi toolbar survei
  15. Survei multibahasa
  16. ExpressionScript Engine - Panduan memulai cepat
  17. Fitur tanpa kategori dan fitur lanjutan
  18. FAQ Umum
  19. Pemecahan Masalah
  20. Solusi Sementara
  21. Lisensi
  22. Log perubahan versi
  23. Plugin
 Actions

Tips keamanan instalasi

From LimeSurvey Manual

Halaman ini mungkin diterjemahkan oleh mesin dan dapat mengandung kesalahan. Tampilkan versi asli bahasa Inggris · Perbaiki terjemahan ini
This page is a translated version of the page Installation security hints and the translation is 100% complete.

Umum

Harap diperhatikan, kami menganggap serius masalah keamanan dan menanganinya dengan cepat. Oleh karena itu, jika Anda mengetahui adanya masalah keamanan di LimeSurvey, beri tahu kami dengan membuat laporan bug di pelacak bug kami (mohon tandai bug tersebut dengan tingkat keparahan atau kategori 'security').

Untuk detail lebih lanjut, silakan baca Kebijakan keamanan kami untuk melaporkan masalah/kerentanan keamanan.

Pembatasan web server

Jika Anda menggunakan Apache, LimeSurvey menyertakan beberapa berkas htaccess untuk pembatasan akses. Pastikan Anda mengizinkan penggunaan htaccess yang disertakan tersebut dengan AllowOverride.

Dengan web server lain, atau jika Anda ingin menggunakan AllowOverride None, Anda harus:

  • (opsional) menonaktifkan akses ke semua berkas di application, protected, framework, dan themes/*/views
  • menonaktifkan akses ke berkas yang diunggah pengguna di /upload/surveys/.*/fu_[a-z0-9]
  • (opsional) menonaktifkan akses ke berkas yang dapat dieksekusi di direktori upload

Anda dapat menemukan contoh untuk nginx di FAQ Umum kami

Izin berkas Linux

Jika Anda menggunakan server Linux, pengaturan izin berkas yang sesuai diperlukan untuk mengamankan instalasi LimeSurvey Anda.

Fakta dasar tentang izin berkas Linux/*nix

Sistem operasi Linux/*nix bersifat multipengguna. Artinya, selain akun pribadi Anda, mungkin ada akun pengguna lain di sistem tersebut, sehingga Anda perlu berhati-hati dalam memberikan izin kepada pengguna lain.

Tips: pengaturan izin berkas sangat penting untuk mengamankan berkas konfigurasi yang menyimpan data penting seperti kata sandi.

Perlu diingat bahwa akun 'root' akan selalu memiliki izin untuk mengakses berkas Anda (apa pun izin berkas yang Anda atur) karena akun tersebut adalah pengguna super-admin.

Web server (yang menjalankan LimeSurvey) juga berjalan dengan identitas (pengguna) tertentu. Di Linux, biasanya pengguna ini adalah 'www', 'www-data' (di Debian/Ubuntu), 'apache', atau 'nobody'. Namun, beberapa perusahaan hosting menggunakan sistem (seperti suexec) yang memungkinkan skrip LimeSurvey dijalankan dengan pengguna pribadi Anda. Tentu saja, pengguna web server harus memiliki hak untuk membaca berkas LimeSurvey. Namun, hanya sebagian kecil subdirektori LimeSurvey yang harus dapat ditulis oleh pengguna web server.

Tips: sangat bermanfaat untuk mencabut izin tulis pengguna web server pada subdirektori LimeSurvey yang tidak memerlukannya. Dengan begitu, meskipun suatu kerentanan LimeSurvey ditemukan, berkas utama tetap terlindungi dari modifikasi ilegal berkat izin pada sistem berkas.

Mengatur izin berkas pada sistem Linux yang dikelola sendiri

Jika Anda mengelola sendiri konfigurasi web server dan sistem operasi (Anda adalah pemilik server fisik atau menyewa server virtual dengan akses root), Anda dapat mempertimbangkan rekomendasi berikut.

Pertama-tama, Anda dapat mengatur pemilik dan grup berkas LimeSurvey agar pengaturan izin berkas menjadi lebih mudah. Salah satu strategi yang mungkin adalah mengatur pemilik berkas LimeSurvey ke nama pengguna pribadi Anda, dan grup berkas LimeSurvey ke grup web server. Biasanya, grup web server ini hanya berisi akun web server (dan mungkin akun webmaster lain). Misalnya, jika nama pengguna Anda adalah 'myaccount' dan pengguna web server adalah 'apache' dalam grup 'apache', maka melalui akses shell Anda dapat menggunakan perintah berikut: $ chown -R myaccount:apache limesurvey/. Setelah itu, atur izin berkas dan subdirektori.

Agar skrip berfungsi dengan baik, diperlukan akses tulis ke beberapa direktori:

  • Direktori /limesurvey/application/config memerlukan Read & Write untuk menyimpan pengaturan konfigurasi aplikasi
  • Direktori /limesurvey/tmp beserta subdirektorinya digunakan untuk impor/unggahan dan harus diatur ke Read & Write untuk web server Anda
  • Direktori upload/ beserta semua subdirektorinya juga harus memiliki izin Read & Write agar gambar dan berkas media dapat diunggah
  • Semua direktori dan berkas lainnya dapat diatur ke Read Only

Mengatur izin berkas pada web server hosting

Karena tidak ada prosedur standar untuk mengamankan aplikasi web di lingkungan hosting, hal ini cukup sulit dilakukan karena lingkungan hosting berbeda-beda dalam banyak hal.

Pada kasus server terkelola, server memerlukan akses tulis ke beberapa direktori agar skrip berfungsi dengan baik:

  • Direktori /limesurvey/tmp digunakan untuk impor/unggahan dan harus diatur ke Read & Write untuk web server Anda
  • Direktori upload/ beserta semua subdirektorinya juga harus memiliki Read & Write untuk web server Anda agar gambar dan berkas media dapat diunggah
  • Direktori dan berkas lainnya harus diatur ke Read Only
Tips:
  • Bergantung pada konfigurasi web server Anda, Anda mungkin perlu melakukan chmod pada folder yang dapat ditulis menjadi 755 atau 777 agar dapat ditulis oleh web server. Coba 755 terlebih dahulu, jika tidak berhasil, 'tingkatkan' ke 777
  • Anda juga dapat mencoba menghapus akses baca pengguna lain ke config.php dengan mengatur izin berkas ini ke 750 - jika tidak berhasil, 'tingkatkan' ke 755

Izin berkas Windows

Jika Anda menggunakan server Windows, pastikan folder admin mengizinkan pemilik proses server web untuk menulis berkas ke direktori ini. Berkas lainnya dapat diatur ke hanya-baca dan eksekusi.

Masalah keamanan lainnya

Berikut ini hanyalah rekomendasi. Secara umum, LimeSurvey sangat aman tanpa langkah tambahan ini. Namun, jika Anda mengumpulkan data yang sangat sensitif, sedikit keamanan tambahan dapat membantu:

Penggunaan SSL

Kami umumnya merekomendasikan penggunaan SSL untuk data survei yang sensitif. Anda biasanya mengaktifkan SSL dengan mengonfigurasi server web Anda dengan benar dan menggunakan sertifikat SSL. Jika Anda telah mengaktifkan SSL, Anda sebaiknya memberlakukan SSL setiap saat melalui pengaturan global LimeSurvey. Selain itu, Anda juga dapat mengatur agar hanya menggunakan cookie 'secure' dengan mengedit opsi terkait di config.php.

Akses ke berkas config.php

  Anda harus memperbarui application/config/config.php hanya setelah instalasi pertama selesai dan berfungsi dengan baik.


Berkas /application/config/config.php berisi nama pengguna dan sandi untuk server basis data Anda. Hal ini menimbulkan masalah keamanan tertentu, terutama jika Anda menggunakan login dengan akses administratif tingkat tinggi ke basis data Anda. Jika terjadi kesalahan yang menyebabkan isi berkas PHP ini dikirim ke browser pengguna, sandi basis data dan detail lainnya dapat terancam (namun, skenario ini sangat jarang terjadi). Cara terbaik untuk meminimalkan risiko adalah dengan membuat login khusus yang hanya memiliki hak akses tertentu ke basis data LimeSurvey Anda.

Cara lain untuk mengamankan informasi ini adalah dengan memindahkan informasi dari berkas /application/config/config.php ke direktori non-web, yaitu bagi pengguna Apache, direktori di atas folder htdocs (juga dikenal sebagai public_html atau www). Pada dasarnya, Anda tetap menggunakan config.php, tetapi hanya berisi satu baris - baris yang menyertakan berkas dengan informasi konfigurasi ASLI (contoh: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Hapus semua informasi konfigurasi asli dari /application/config/config.php dan tempelkan ke berkas lain (configreal.php) yang disebutkan dalam berkas /application/config/config.php. Berkas lain ini harus berada di direktori non-web. Dengan begitu, /application/config/config.php tidak akan berisi sandi basis data dan sebagainya - hanya nama berkas yang BERISI informasi basis data.

Hal ini menghindarkan Anda dari keharusan mengubah semua berkas lain yang menyertakan /application/config/config.php, karena config.php 'mengarahkan' berkas-berkas tersebut ke berkas konfigurasi yang berada di direktori non-web yang berisi semua informasi konfigurasi sebenarnya.

Selain itu, jangan gunakan "admin" atau "administrator" sebagai pengguna default. Buka basis data MySQL Anda (atau basis data tempat Anda menginstal LimeSurvey) dan ubah nama pengguna default "admin" menjadi apa pun yang Anda inginkan (misalnya "admin_xyz"). Sekarang akan jauh lebih sulit menebak nama pengguna baru administrator. Ingat, ini adalah salah satu dari dua variabel yang dapat digunakan penyusup untuk mendapatkan akses. Kata sandi admin adalah variabel lainnya. Jadi, pilihlah keduanya dengan sangat hati-hati.

Content Security Policy (CSP)

PERHATIAN - CSP yang diberikan di sini hanyalah contoh dan tidak dimaksudkan untuk digunakan apa adanya. Contoh ini hanya sebagai titik awal dan Anda HARUS menyesuaikannya dengan kebutuhan Anda serta mengujinya secara menyeluruh.

<IfModule mod_headers.c>
        Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; base-uri 'none'; form-action 'self'; frame-ancestors 'self'; upgrade-insecure-requests" "expr=%{CONTENT_TYPE} =~ m#text\/(html|javascript)|application\/pdf|xml#i"
</IfModule>