x

Bab utama

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Panduan permulaan pantas - LimeSurvey 3.0+
  3. Pemasangan - LimeSurvey CE
  4. Cara mereka bentuk tinjauan yang baik (panduan)
  5. Bermula
  6. Mentadbir LimeSurvey
  7. Tinjauan - pengenalan
  8. Tetapan tinjauan
  9. Menu tinjauan
  10. Struktur tinjauan
  11. Soalan - pengenalan
  12. Kumpulan soalan - pengenalan
  13. Tinjauan - pengurusan
  14. Pilihan bar alat tinjauan
  15. Tinjauan berbilang bahasa
  16. Enjin ExpressionScript - Panduan mula pantas
  17. Ciri tidak dikategorikan dan ciri lanjutan
  18. Soalan Lazim Umum
  19. Penyelesaian Masalah
  20. Penyelesaian sementara
  21. Lesen
  22. Tukar log versi
  23. Pemalam
 Actions

Petua keselamatan pemasangan

From LimeSurvey Manual

Halaman ini mungkin telah diterjemahkan oleh mesin dan mungkin mengandungi ralat. Papar teks asal bahasa Inggeris · Perbaiki terjemahan ini
This page is a translated version of the page Installation security hints and the translation is 100% complete.

Umum

Sila ambil perhatian bahawa kami mengambil serius isu keselamatan dan bertindak dengan pantas. Oleh itu, jika anda mengetahui sebarang masalah keselamatan dalam LimeSurvey, sila maklumkan kepada kami dengan membuka laporan pepijat di penjejak pepijat kami (sila tandakan pepijat tersebut dengan tahap keterukan atau kategori 'security').

Untuk butiran lanjut, sila semak Dasar keselamatan kami bagi melaporkan isu/kelemahan keselamatan.

Sekatan pelayan web

Jika anda menggunakan Apache, LimeSurvey menyertakan beberapa fail htaccess untuk sekatan. Pastikan anda membenarkan htaccess yang disertakan dengan AllowOverride.

Dengan pelayan web lain atau jika anda ingin menggunakan AllowOverride None : anda mesti

  • (pilihan) lumpuhkan akses kepada semua fail dalam application, protected, framework dan themes/*/views
  • lumpuhkan akses kepada fail yang dimuat naik oleh pengguna /upload/surveys/.*/fu_[a-z0-9]
  • (pilihan) lumpuhkan akses kepada fail boleh laksana dalam direktori muat naik

Anda boleh mendapatkan contoh untuk nginx dalam Soalan Lazim Umum

Kebenaran fail Linux

Jika anda menggunakan pelayan Linux, menetapkan kebenaran fail dengan sewajarnya diperlukan untuk melindungi pemasangan LimeSurvey anda.

Fakta asas tentang kebenaran fail Linux/*nix

Sistem pengendalian Linux/*nix adalah berbilang pengguna. Ini bermakna, selain akaun peribadi anda, akaun pengguna lain mungkin wujud dalam sistem dan anda perlu berhati-hati dengan kebenaran yang anda berikan kepada pengguna lain.

Petua: menetapkan kebenaran fail amat penting bagi melindungi fail konfigurasi yang menyimpan data kritikal seperti kata laluan.

Ingat bahawa akaun 'root' sentiasa diberi kebenaran untuk mengakses fail anda (walau apa pun kebenaran fail yang anda tetapkan) kerana ia adalah pengguna pentadbir super.

Pelayan web (yang menjalankan LimeSurvey) juga berjalan di bawah identiti (pengguna) tertentu. Pada Linux, ini biasanya pengguna 'www', 'www-data' (pada Debian/Ubuntu), 'apache' atau 'nobody'. Walau bagaimanapun, sesetengah syarikat pengehosan menggunakan sistem (seperti suexec) yang membolehkan skrip LimeSurvey dijalankan dengan pengguna peribadi anda. Sudah tentu, pengguna pelayan web mesti mempunyai hak untuk membaca fail LimeSurvey. Namun, hanya sebilangan kecil subdirektori LimeSurvey yang perlu boleh ditulis oleh pengguna pelayan web.

Petua: sangat bernilai untuk menarik balik kebenaran menulis bagi pengguna pelayan web pada subdirektori LimeSurvey yang tidak memerlukannya. Malah, walaupun kelemahan LimeSurvey mungkin ditemui, fail utama masih akan dilindungi daripada pengubahsuaian yang tidak sah berkat kebenaran sistem fail.

Menetapkan kebenaran fail pada sistem Linux yang diuruskan sendiri

Jika anda menguruskan konfigurasi pelayan web dan sistem pengendalian anda sendiri (anda pemilik pelayan fizikal atau menyewa pelayan maya yang anda mempunyai akses root), anda boleh mempertimbangkan cadangan di bawah.

Anda boleh menetapkan pemilik dan kumpulan fail LimeSurvey terlebih dahulu supaya penetapan kebenaran fail menjadi lebih mudah. Satu strategi yang mungkin ialah menetapkan pemilik fail LimeSurvey kepada nama pengguna peribadi anda, dan kumpulan fail LimeSurvey kepada kumpulan pelayan web. Biasanya, kumpulan pelayan web ini hanya mengandungi akaun pelayan web (dan mungkin akaun webmaster yang lain). Contohnya, jika nama pengguna anda ialah 'myaccount' dan pengguna pelayan web ialah 'apache' dalam kumpulan 'apache', maka, daripada akses shell, anda boleh menggunakan arahan berikut: $ chown -R myaccount:apache limesurvey/. Seterusnya, tetapkan kebenaran fail dan subdirektori.

Agar skrip berfungsi dengan betul, akses tulis kepada beberapa direktori diperlukan:

  • Direktori /limesurvey/application/config memerlukan Baca & Tulis untuk menyimpan tetapan konfigurasi aplikasi
  • Direktori /limesurvey/tmp dan subdirektorinya digunakan untuk import/muat naik dan perlu ditetapkan kepada Baca & Tulis untuk pelayan web anda
  • Direktori upload/ dan semua subdirektorinya juga mesti ditetapkan kebenaran Baca & Tulis untuk membolehkan muat naik gambar dan fail media
  • Semua direktori dan fail lain boleh ditetapkan kepada Baca Sahaja

Menetapkan kebenaran fail pada pelayan web terhos

Memandangkan sukarnya prosedur piawai untuk melindungi aplikasi web dalam persekitaran terhos, ia agak sukar kerana persekitaran terhos berbeza dalam pelbagai aspek.

Dalam kes pelayan terurus, pelayan memerlukan akses tulis kepada beberapa direktori supaya skrip berfungsi dengan betul:

  • Direktori /limesurvey/tmp digunakan untuk import/muat naik dan perlu ditetapkan kepada Baca & Tulis untuk pelayan web anda
  • Direktori upload/ dan semua subdirektorinya juga mesti mempunyai Baca & Tulis untuk pelayan web anda bagi membolehkan muat naik gambar dan fail media
  • Direktori dan fail lain perlu ditetapkan kepada Baca Sahaja
Petua:
  • Bergantung pada konfigurasi pelayan web anda, anda perlu menjalankan chmod pada folder yang boleh ditulis kepada 755 atau 777 supaya ia boleh ditulis oleh pelayan web. Cuba 755 dahulu, jika tidak berjaya, 'tingkatkan' kepada 777
  • Anda juga boleh cuba mengalih keluar akses baca pengguna lain kepada config.php dengan menetapkan kebenaran fail ini kepada 750 - jika tidak berjaya, 'tingkatkan' kepada 755

Kebenaran fail Windows

Jika anda menggunakan pelayan Windows, anda perlu memastikan folder admin membenarkan pemilik proses pelayan web menulis fail ke direktori ini. Fail selebihnya boleh ditetapkan kepada baca sahaja dan laksana.

Isu keselamatan lain

Yang berikut hanyalah cadangan. LimeSurvey secara amnya sangat selamat tanpa langkah tambahan ini. Namun, jika anda mengumpul data yang sangat sensitif, sedikit keselamatan tambahan boleh membantu:

Penggunaan SSL

Kami secara amnya mengesyorkan penggunaan SSL untuk data tinjauan yang sensitif. Anda biasanya mendayakan SSL dengan mengkonfigurasi pelayan web anda dengan betul dan menggunakan sijil SSL. Jika anda telah mendayakan SSL, anda perlu menguatkuasakan SSL sepanjang masa daripada tetapan global LimeSurvey. Selain itu, anda boleh menetapkan penggunaan kuki 'secure' sahaja dengan mengedit pilihan berkaitan dalam config.php.

Akses kepada fail config.php

  Anda mesti mengemas kini application/config/config.php hanya selepas pemasangan pertama selesai dan berfungsi.


Fail /application/config/config.php mengandungi nama pengguna dan kata laluan untuk pelayan pangkalan data anda. Hal ini menimbulkan beberapa isu keselamatan, terutamanya jika anda menggunakan log masuk yang mempunyai akses pentadbiran peringkat tinggi kepada pangkalan data anda. Sekiranya berlaku ralat yang menyebabkan kandungan fail PHP ini dihantar kepada pelayar pengguna, kata laluan pangkalan data dan butiran lain anda mungkin terdedah (namun, senario ini sangat tidak mungkin berlaku). Cara terbaik untuk mengurangkan risiko ialah dengan menyediakan log masuk khusus yang hanya mempunyai hak khusus kepada pangkalan data LimeSurvey anda.

Cara lain untuk melindungi maklumat ini ialah dengan meletakkan maklumat daripada fail /application/config/config.php dalam direktori bukan web, iaitu bagi pengguna Apache ialah direktori di atas folder htdocs (juga dikenali sebagai public_html atau www). Pada dasarnya, anda akan menggunakan config.php, tetapi hanya mengekalkan satu baris di dalamnya - baris yang memasukkan fail yang mengandungi maklumat konfigurasi SEBENAR (cth: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Alih keluar semua maklumat konfigurasi sebenar daripada /application/config/config.php dan tampalkannya ke dalam fail lain (configreal.php) yang disebut dalam fail /application/config/config.php. Fail lain ini hendaklah diletakkan dalam direktori bukan web. Dengan itu, /application/config/config.php tidak akan mengandungi kata laluan pangkalan data dan sebagainya - hanya nama fail yang MENGANDUNGI maklumat pangkalan data.

Dengan cara ini, anda tidak perlu mengubah semua fail lain yang menyertakan /application/config/config.php, kerana config.php 'mengalihkan mereka' ke fail konfigurasi yang terletak dalam direktori bukan web yang mengandungi semua maklumat konfigurasi sebenar.

Selain itu, jangan gunakan "admin" atau "administrator" sebagai pengguna lalai. Pergi ke pangkalan data MySQL anda (atau pangkalan data tempat anda memasang LimeSurvey) dan tukar nama pengguna lalai "admin" kepada apa-apa yang anda suka (cth: "admin_xyz"). Nama pengguna baharu pentadbir kini akan jauh lebih sukar diteka. Ingat, ini ialah salah satu daripada dua pemboleh ubah yang boleh digunakan penceroboh untuk mendapat akses. Kata laluan pentadbir ialah pemboleh ubah yang satu lagi. Oleh itu, pilih kedua-duanya dengan amat berhati-hati.

Content Security Policy (CSP)

PENAFIAN - CSP yang disediakan di sini hanyalah contoh dan tidak dimaksudkan untuk digunakan secara bulat-bulat. Ia dimaksudkan sebagai titik permulaan dan anda MESTI menyesuaikannya dengan keperluan anda serta mengujinya dengan teliti.

<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>