Membatasi Akses Via Route CI

mencoba akses ke folder yang tidak tersedia dan menampilkan pesan error 403 karena data yang diinginkan tidak tersedia

avatar hk2903
@hk2903

1 Kontribusi 1 Poin

Diperbarui 1 tahun yang lalu

Tanggapan

bisa dibentuk pertanyaan dan masalahnya apa lebih jelas?

2 Jawaban:

<div>Untuk membatasi akses ke folder tertentu pada CodeIgniter, kamu bisa menggunakan fungsi <strong>force_download</strong> pada CI. Fungsi ini dapat memastikan bahwa pengguna hanya bisa mengakses file yang sudah diizinkan dan memblokir akses ke file yang tidak diizinkan.<br><br></div><div>contoh:<br>file <strong>.htaccess</strong>&nbsp;</div><pre># Block directory browsing Options -Indexes

Block access to all files in this directory

Deny from all</pre><div><br>file controller yang ingin dibatasi aksesnya:</div><pre>public function download_file() { $file_path = '/path/to/file'; // ganti dengan path ke file yang diinginkan $file_name = 'nama_file.pdf'; // ganti dengan nama file yang diinginkan

// cek apakah file ada dan dapat diakses
if (file_exists($file_path) &amp;amp;&amp;amp; is_readable($file_path)) {
    // set headers untuk force download
    header(&#039;Content-Type: application/octet-stream&#039;);
    header(&#039;Content-Disposition: attachment; filename=&quot;&#039; . $file_name . &#039;&quot;&#039;);
    header(&#039;Content-Length: &#039; . filesize($file_path));

    // baca file dan kirimkan isinya ke output
    readfile($file_path);
} else {
    // jika file tidak ditemukan atau tidak dapat diakses
    show_error(&#039;Data yang diinginkan tidak tersedia&#039;, 403);
}

}</pre><div><br>Pada contoh kode di atas, jika file yang diinginkan ada dan dapat diakses, maka file akan didownload secara otomatis menggunakan fungsi <strong>readfile()</strong>. Namun, jika file tidak ditemukan atau tidak dapat diakses, maka akan ditampilkan pesan error 403 menggunakan fungsi <strong>show_error()</strong>. Kamu juga bisa menyesuaikan pesan error yang ingin ditampilkan.<br><br></div><div>Semoga membantu!</div>

avatar yukari06
@yukari06

137 Kontribusi 66 Poin

Dipost 1 tahun yang lalu

<div>Untuk membatasi akses ke folder atau halaman tertentu dalam CodeIgniter, Anda dapat menggunakan fitur routing dan pengecekan otentikasi pengguna. Berikut adalah beberapa langkah yang dapat Anda lakukan:<br><br>Buatlah sebuah fungsi pada controller untuk menampilkan pesan error 403 jika pengguna mencoba mengakses halaman yang tidak diizinkan.</div><div><br></div><pre>public function error_403() { $data['title'] = "Access Denied"; $this-&gt;load-&gt;view('error_403', $data); }</pre><div><br><br>Di dalam file <strong>routes.php</strong>, tentukanlah URL yang ingin dibatasi aksesnya dan arahkan ke fungsi <strong>error_403()</strong> yang telah dibuat sebelumnya.<br><br></div><pre>$route['restricted_folder'] = 'MyController/error_403';</pre><div><br><br>Di dalam fungsi <strong>__construct()</strong> pada setiap controller yang ingin Anda batasi aksesnya, lakukan pengecekan otentikasi pengguna. Jika pengguna belum melakukan login atau tidak memiliki akses ke halaman tersebut, arahkan ke halaman error 403 yang telah dibuat.<br><br></div><pre>public function __construct() { parent::__construct(); $this-&gt;load-&gt;library('session');

// check user authentication if (!$this-&gt;session-&gt;userdata('logged_in')) { redirect('login'); }

// check user access $allowed_roles = array('admin', 'editor'); $user_role = $this-&gt;session-&gt;userdata('role'); if (!in_array($user_role, $allowed_roles)) { redirect('restricted_folder'); } }</pre><div><br><br>Dalam contoh di atas, fungsi <strong>__construct()</strong> melakukan pengecekan terhadap otentikasi pengguna dengan memeriksa apakah pengguna telah melakukan login atau belum. Kemudian, dilakukan pemeriksaan akses pengguna berdasarkan peran pengguna (<strong>$user_role</strong>). Jika pengguna tidak memiliki akses ke halaman tersebut, maka pengguna akan diarahkan ke halaman error 403 yang telah dibuat sebelumnya.<br><br></div><div><br>Anda dapat menyesuaikan kode tersebut sesuai dengan kebutuhan Anda, termasuk pengecekan otentikasi pengguna dan pengecekan akses pengguna.</div>

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban