اصفهان - گلپایگان - بخش مرکزی - شهر گلپایگان-محله پارک شهر-کوچه محبت-خیابان غدیر-پلاک 8771664345 - کد پستی:8771664345
03157481449   09130246374  @ 



امنیت session ها در php توسط SessionHandlerInterface


امنیت session ها در php توسط SessionHandlerInterface

در php به صورت پیشفرض جلسه ها در یک مکان و طبق یک اصول ذخیره میشند که شاید به راحتی بتوان به آن دست پیدا کرد. 

خب اگر ما طبق اصول خودمون و روشی خاص جلسه ها را ایجاد کنیم کمتر قابل حدس زدن می باشد.

توسط کلاس اینترفیس  SessionHandlerInterface میتوان خواندن - نوشتن - نابود کردن - و .... را به سبک خود انجام بدیم

 

<?php
class MySessionHandler implements SessionHandlerInterface
{
    private $savePath;

    public function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    public function close()
    {
        return true;
    }

    public function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    public function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    public function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    public function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

 


1397/02/30 21:14:30     مطالب آموزشی php    478 بار    اشتراک در تلگرام    https://www.zhupin.ir/post/37

نظرات

دیدگاهی یافت نشد

کد امنیتی :

خلیج ..... ؟