Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Security: unduh surat di menu Cetak Surat > Arsip Layanan tidak boleh langsung #941

Closed
eddieridwan opened this issue Apr 21, 2018 · 12 comments
Labels
security Keamanan, perlu diperbaiki secepatnya.

Comments

@eddieridwan
Copy link
Collaborator

Saat ini unduh surat dan lampiran di menu Cetak Surat > Arsip Layanan langsung mengarah ke file di folder desa, sehingga bisa diketahui pengguna. Ganti menggunakan script untuk mengunduh surat dan lampiran dari arsip.

@eddieridwan eddieridwan added the security Keamanan, perlu diperbaiki secepatnya. label Apr 21, 2018
@egodasa
Copy link
Contributor

egodasa commented Apr 28, 2018

Seperti ini? https://stackoverflow.com/questions/12295604/php-simple-download-script
Pas kita cetak dokumen juga langsung mengarah ke lokasi asli file. Apakah juga perlu diterapkan di tombol cetak?

@eddieridwan
Copy link
Collaborator Author

@egodasa ikuti contoh yang sudah ada di controllers/Surat_masuk.php action unduh_berkas_scan(). Yaitu lihat cara kerja tombol Unduh di menu Sekretariat > Surat Masuk.

Tapi coba pindahkan logicnya ke model (untuk issue ini masukkan ke Surat_keluar_model.php). Karena praktek baik umumnya berusaha agar controller tidak membengkak, dan memasukkan logic ke model yang berurusan dengan data yg bersangkutan.

@egodasa
Copy link
Contributor

egodasa commented Apr 30, 2018

Maaf Mas, apakah sebaiknya method unduh_berkas_scan() dijadikan sebagai method di helper? Jadi nanti semua dokumen yang diunduh bisa memakai method tersebut.

@eddieridwan
Copy link
Collaborator Author

@egodasa ya, setuju.

@egodasa
Copy link
Contributor

egodasa commented Apr 30, 2018

Mau dijadikan ke helper atau extend controller CI atau Mas punya saran? kalau extend controller, nanti semua berkas bisa diunduh dengan url yang sama. Semacam controller/unduh_berkas/:id_berkas?

@yus-ham
Copy link
Contributor

yus-ham commented Apr 30, 2018

@egodasa
Copy link
Contributor

egodasa commented Apr 30, 2018

Helper tersebut memang digunakan @suphm yaitu force_download()

@egodasa
Copy link
Contributor

egodasa commented May 1, 2018

Maaf Mas @eddieridwan lokasi unduh surat semuanya di folder desa/arsip ya?

@eddieridwan
Copy link
Collaborator Author

@egodasa peran setiap subfolder di folder desa ada di https://github.com/OpenSID/OpenSID/wiki/Folder-Desa. Kalau ada yang salah atau kurang lengkap, silakan tanyakan di https://opensid.slack.com/messages/C6BLLFETH/details/ atau kalau sudah yakin silakan perbaiki sendiri.

@egodasa
Copy link
Contributor

egodasa commented May 2, 2018

@eddieridwan Maaf Mas, saya masih bingung. Kalau unduh_berkas_scan() dijadikan helper, berarti kita masih perlu bikin method di controller untuk menjalankan helper tersebut. Saya kepikiran untuk memindahkan method tersebut ke class CI untuk di extend agar semua class bisa memakai method tersebut dengan cara extend class MY_controller

@eddieridwan
Copy link
Collaborator Author

eddieridwan commented May 2, 2018

Method di helper bisa dipanggil dari mana saja, termasuk dari controller atau model. Yang dipindahkan adalah proses mengambil/menyiapkan berkas untuk diunduh. force_download nya sendiri tetap di controller.

Tetapi sebaiknya untuk tahap ini diletakkan di model Surat_keluar_model.php saja. Karena yang tahu tempat penyimpanan arsip dan tahu struktur penamaan berkas harusnya model itu. Nanti kalau kita kerjakan pengunduhan lainnya, mungkin bisa di-abstract lebih lanjut dan sebagian yang sifatnya umum dipindahkan ke helper.

@eddieridwan
Copy link
Collaborator Author

Sudah dicommit ke master melalui PR #995

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
security Keamanan, perlu diperbaiki secepatnya.
Projects
None yet
Development

No branches or pull requests

3 participants