ایجاد مکرر کلید جلسه
در مورد جلسات این چند روزه زیاد نوشتم. تو آخرین نوشته، یه دوستی کامنت گذاشتن که استفاده از تابع session_regenerate_id میتونه کمک کنه برای جلوگیری از دزدیدن جلسه ؟ برای تست به این چیزها احتیاج هست :
اول از همه فایرفاکس
دوم فایرباگ
سوم FireCookie
چهارم یک بروزر دیگه غیر از فایرفاکس، مثلا Opera .
کدی مثل این رو ایجاد کنید :
<?php
session_start();
session_regenerate_id();
if (isset($_SESSION['test'])){
echo $_SESSION['test'];
echo "<br />";
echo session_id();
}else{
$_SESSION['test']=$_SERVER['HTTP_USER_AGENT'];
echo "First time";
}
این کد، رشته مربوط به User Agent رو توی جلسه ذخیره میکنه. بعد از دفعه اول که جلسه ایجاد بشه هر بار کلید جلسه هم نمایش داده میشه و همون رشته ذخیره شده، نمایش کلید جلسه فقط برای اینه که دسترسی به کلید جلسه یک کمی راحت شه :D
اول این کد رو توی Opera یا هر بروزری غیر از فایرفاکس اجرا کنید. البته یه Refresh نیازه که کلید و محتوا رو نشون بده.
حالا همون صفحه رو توی فایرفاکس باز کنید. دوبار هم Refresh کنید که هم کلید جلسه رو ببینید هم محتوا رو، این یکی با اون یکی فرق میکنه (طبیعیه دیگه!) حالا توو همین صفحه فایرباگ رو فعال کنید، اگه FireCookie نصب باشه یه تب داره به اسم Cookies اونجا برید، روی PHPSESSID کلیک راست کنید و گزینه Edit رو بزنید:

صفحه FireCookie
بعد تو دیالوگ زیر توی قسمت Value مقداری که الان توی Opera (یا هر Browser دیگه که دوست دارید) نمایش داده میشه رو کپی کنید.قبل از اینکه این مقدار کپی شده رو توی فایرفاکس بگذارید، چند بار Opera رو Refresh کنید که یه کلید جدید ساخته بشه (با کمک اون تابع session_regenerate_id ) بعد اون کلیدی که مربوط به جلسه قبل بود و کپی کردید رو توی دیالوگ زیر قسمت Value بگذارید (این دیالوگ رو گفتم، با کلیک راست روی کلمه PHPSESSID و انتخاب گزینه Edit میتونید ببینید، قسمت Host و زمان و … مهم نیست و برای هر کس متفاوته و بستگی داره به هاستی که دارید این کد رو اجرا میکنید ) اینطوری مطمئن میشید که دیگه اون کلید جلسه برای Opera از بین رفته (که البته نرفته !) :

ویرایش کوکی
تایید کنید و بعد یه Refresh و اونوقته که اینو میبینید :

فایرفاکس یا اپرا؟؟؟؟؟
یه مشکل دیگه این تابع، اینه که دو بار کوکی مربوط به جلسه رو توی Header میفرسته، Browser های جدید و مدرن مشکلی ندارن با این قضیه ولی مثلا روی بعضی گوشیها قاطی میکنه :)
اگر هم با آرگومان true این تابع رو فراخوانی کنیم، ممکنه مشکل از دست دادن جلسه رو داشته باشیم(توی تست من با Refresh های سریع)، بعلاوه اینکه سرعت رو هم کم میکنه، البته نسبتا.
ممنون از پیام واسه اینکه این تابع رو هم گوشزد کردن.
FireBug,
FireCookie,
FireFox Addon,
PHP,
Session hijacking,
Session stealing,
Sessions,
افزونه فایرفاکس,
امنیت در PHP,
فایرباگ,
فایرفاکس,
فایرفاکس
هیچ دنبالکی فرستاده نشدهاست.
در 4 ماه پیش - ۱۲ نظر
بازی مافیا رو اولین بار وقتی دانشجو بودیم انجام دادم و متاسفانه چون توی فصل امتحانات بود و منم فارغ التحصیل زیاد قاطی قضیه نشدم :) چند وقت پیش، دوست خوبم ایمان، سعی کرد بچه ها رو جمع کنه برای بازی تو Gtalk و همون موقع تصمیم گرفتم که این بازی رو به صورت یه…
در 7 ماه پیش - ۶ نظر
– این فقط یه معرفی ساده یه پروژه است نه راهنمای کاملش. یکی از معروفترین سایتهای فعلی، فیسبوکه و شکی در این نیست (نمیدونم با وجود گوگل پلاس وضع همینطوری میمونه یا نه؟). ولی این سایت همینجوری که تبدیل نشده به اینی که الان هست! یک تیم برنامه نویسی قدرتمند هم پشت این پروژه هست…
در 8 ماه پیش - ۵ نظر
امروز درگیر یک کد بودم شبیه این : به نظر شما خروجیش چیه؟؟؟ یعنی اصلا چیزی باید چاپ بشه یا نه؟ من معتقدم که نباید چیزی چاپ بشه. یعنی شرط if اصلا درست نیست که بخواد برسه به echo ولی مساله مسخره اینه که isset میگه این ایندکس وجود داره و -برداشت شخصی من اینه…
در 1 سال پیش - ۲ نظر
یکی از اصولی که سعی میکنم هنگام طراحی رعایت کنم، استفاده نکردن هرچه بیشتر!!! از زبان فارسیست. یعنی سعی میکنم تحت هیچ شرایطی توی کد حتی یک کلمه به زبانی غیر از انگلیسی، خصوصا فارسی ننویسم. علت سادست، فارسی میتونه باعث مشکلات زیادی در زمان کد نویسی بشه خصوصا مشکلاتی که معمولا ویرایشگرهایی که من…
در 1 سال پیش - ۱۱ نظر
یه پرسشنامه برای گرفتن چند تا برنامه نویس PHP طرح کرده بودم (بنا به خواست یه کارفرما). چند تا سوال در زمینه PHP هم پرسیده بودم، یکیش همون قضیه اولویت عملگرها بود و دقیقا کدی که اینجا هست رو پرسیده بودم خروجیش چی میشه، که هیچ کس درست جواب نداده بود. (برام زیاد دور از…
در 1 سال پیش - ۴ نظر
توی نوشته قبلی، درباره عبارات با قاعده نوشتم، و حالا میخوام ادامش بدم. کاراکتر نقطه “.” فرض کنید میخواید تمام کلماتی که در ابتداشون h داره و در انتهاشون llo رو پیدا کنید. مثلا hello ، یا hallo یا hollo یا هر ترکیب دیگری. اینطوری میتونید از کاراکتر نقطه استفاده کنید. به عبارتی کاراکتر نقطه…
در 1 سال پیش - ۹ نظر
عبارات با قاعده، به نظر خیلی ها ترسناکه. به نظر خودم هم بود. تا اینکه یه کتاب خوندم دربارش و تازه پی بردم به قدرتش. (این کتاب مورد نظره : Mastering Regular Expressions نوشته Jeffrey E. F. Friedl ، منتها من نسخه ای رو خوندم که غیر قانونی دانلود شده بود و به اشتراک گذاشتن این…
در 1 سال پیش - یک نظر
حتما دو تا تابع echo و print رو میشناسید. این دو تا عملا یه کار رو انجام میدن. پس چرا شدن دو تا تابع؟ تفاوتشون چیه؟؟ خوب من سعی میکنم که توضیح بدم این قضیه رو. شباهتها هر دو تابع نیستن :) جزئی از ساختار زبانی هستن. یعنی میشه بدون پرانتز فراخوانیشون کرد ولی استفاده…
در 1 سال پیش - ۵ نظر
خیلی با مزست :) دومین باره که از این وبلاگ یه چیزی میخونم که بعد تصمیم میگیرم خودم هم روش کار کنم. وبلاگ یک پزشک توی نوشته Copy Fixer، افزونهای کوچک و کارا برای فایرفاکس و کروم | یک پزشک یه افزونه رو معرفی کرد، که من هم خوشم اومد. منتها اونچیزی نبود که میخواستم.…
در 1 سال پیش - بدون نظر
توی ویندوز کوچک و بزرگ بودن حروف در اسم فایلها تاثیری نداره. ولی توی لینوکس این یه کم متفاوته، مثلا تو ویندوز TEST.php و test.php یکی هستن اگه به عنوان اسم فایل استفاده بشن. خودمونی تر! تو یه فولدر نمیشه دو تا فایل رو همزمان به این دو اسم ایجاد کرد، ولی تو لینوکس میشه.…
در 1 سال پیش
سلام…خواستم بهت یک خسته نباشیدی بگم کارت عالیه امیدوارم ادامه بدیش…
موافقید یا نه :
0
0
در 1 سال پیش
با سلام.اگه میشه در مورد کلیته جلسه هم مطلب بزارین چون مطمئنم بیشتر کسایی که مطلب کلید جلسه رو خوندن تعریف دقیقی از جلسه نمیدونن(از جمله خود من)نه که ندونم جلسه چیه نه فقط چگونه گیه کارشو نمیفهمم.مرسی
موافقید یا نه :
0
0
در 5 ماه پیش
http://www.phpro.org/tutorials/Introduction-To-PHP-Sessions.html
بچه ها یه سر به این سایت بزنین خیلی در مورد session ها خوب توضیح داده
موافقید یا نه :
0
0