Memahami Session PHP

 Author : hadinug, 13 June, 2014, Komentar

php session


SESSION merupakan cara menyimpan informasi di halaman yang diminta oleh pengguna selama kunjungannya ke website atau aplikasi web. Skenario paling dasar dari sebuah session adalah ketika anda bekerja dengan sebuah aplikasi, anda membukanya, membuat beberapa perubahan, dan kemudian anda menutupnya.


Contoh dari skenario session yang paling sering diimplementasikan adalah adalah mengingatkan pada proses yang terjadi ketika menggunakan sistem login. Proses ini bisa sangat rumit atau sangat sederhana, asalkan ada nilai yang tetap ada ketika melakukan permintaan baru terhadap halaman website. Informasi yang tersimpan dalam sesi dapat dipanggil setiap saat selama sesi terbuka.


Di artikel ini, kami akan memberikan anda sebuah contoh penggunakan sesi dalam PHP - cara membuat session, bagaimana untuk menghancurkan/destroy mereka, dan bagaimana untuk memastikan mereka tetap aman.



Menggunakan Session

Sebelum anda dapat menyimpan informasi dalam sesi, anda harus mulai melakukan penanganan sesi dengan PHP. Hal ini dilakukan pada awal kode PHP anda. Harus dilakukan sebelum teks, HTML, JavaScript yang dikirim ke browser. Untuk memulai sesi, Anda bisa memanggil fungsi session_start() dalam file pertama anda:


<?php
// memulai session
session_start();
// mengambil data session 
echo "login = " . $_SESSION["login"];


Contoh diatas hanyalah sebuah demonstrasi yang sangat dasar untuk menyimpan dan mengambil data dalam satu sesi. Pada contoh kode diatas, nilai "session" dikaitkan dengan nama "login" dalam array $ _SESSION. Informasi login session diminta kembali dengan menggunakan array $ _SESSION. $ _SESSION memungkinkan anda untuk menyimpan dan mengambil informasi di seluruh permintaan halaman dari sesi browsing aktif pengguna.


Mengakhiri Sesi 

Meskipun sesi hanya cara sementara untuk menyimpan data, sangat penting untuk membersihkan atau menghapus informasi yang terismpan untuk memastikan keamanan maksimum ketika berhadapan dengan informasi yang berpotensi sensitif. Ini merupakan hal yang baik dan akan menghindari penumpukan data session yang lama menumpuk diserver. 


Untuk menghapus nilai sesi tunggal, anda dapat menggunakan fungsi unset():


<?php
session_start();
// hapus nilai session login
unset($_SESSION["login"]);


Sedangkan untuk menghapus semua nilai session, anda bisa menggunakan fungsi session_unset();


<?php
session_start();
// hapus semua nilai session
session_unset();


Atau anda juga bisa menggunakan fungsi session_destroy(), untuk mengakhiri sebuah sesi:


<?php
session_start();
// mengakhiri session
session_destroy();


Kami merekomendasikan untuk meghapus atau mengakhiri sebuah sesi dengan menggunakan session_destroy(), bukan hanya menggunakan unset atau dengan session_unset(). Jika anda hanya menggunakan unset() atau session_unset(), sesi itu sendiri masih aktif dan ini sangat berbahaya. 


Ini merupakan cara yang sangat dasar tetapi sangat baik dalam mempelajari session PHP, yang menyediakan solusi elegan untuk menangani data antara halaman web.


Tips Keamanan

Meskipun cara diatas masih terlihat sangat sederhana, masih ada caralain yang lebih baik dalam menggunakan session atau sesi di PHP. Berikut ini adalah gambaran singkat dari beberapa teknik keamanan yang dapat anda gunakan untuk memastikan bahwa anda aman dalam menggunakan sessi.


Session Time-Out 

Merupakan cara yang sangat baik jika anda berurusan dengan pengguna login di sebuah situs Web atau aplikasi.


<?php
session_start();
// atur waktu sesi dalam (detik)
$inactive = 600;
 
// mengecek  $_SESSION["timeout"]
if (isset($_SESSION["timeout"])) {
    // menghitung lama sesi
    $sessionTTL = time() - $_SESSION["timeout"];
    if ($sessionTTL > $inactive) {
        session_destroy();
        header("Location: /logout.php"); // arahkan ke halaman logout.php
    }
}
 
$_SESSION["timeout"] = time();


Kode diatas akan memastikan bahwa jika tidak ada aktivitas selama lebih dari 600 detik (10 menit) permintaan tersebut diarahkan ke halaman logout.


Regenerasi ID Sesi 

Anda bisa menggunakan fungsi session_regenerate_id() untuk menciptakan unik-ID baru untuk mewakili sesi pengguna saat ini. Seperti dalam penggunaan login atau memperbarui data profil pengguna. Hal ini akan membuat aplikasi anda lebih aman dengan mengurangi risiko serangan tertentu yang dikenal sebagai "Pembajakan."


<?php
session_start();
 
if ($_POST["username"] == "admin" && $_POST["password"] == md5("password")) {
    $_SESSION["authorized"] = true;
    session_regenerate_id();
}


Menghapus Sessions 

Seperti yang kami jabarkan diatas sebelumnya, anda harus menggunakan session_destory(). Ini akan menghindari pembajakan, dan meningkatkan keamanan disesi situs web anda. 


Ringkasan 

Pada artikel ini, anda telah belajar memahami apa itu sesi, dan bagaimana untuk membuat, menggunakan, dan menghancurkan mereka di PHP. Semoga bermanfaat :-)

 
Bagikan halaman ke sosial media
 
Tags :   session    php    login       

Tentang Penulis

writer hadinug
Web Developer di PT. Yafii Solusi Internasional

Link: http://ysi.co.id

   Komentar Anda