PDA

View Full Version : سوال: امنیت در لوگین



sobhangh
شنبه 01 مرداد 1390, 17:41 عصر
سلام
من می خوام تمام راهکارهایی که دوستان برای بالا بردن امنیت در لوگین رو بلدن رو بهم بگم.
هر راهی در نقاط مختلف یک لوگین و راههای پوشش حفره ها.
امیدوارم دوستانی که در این امر استاد هستند اطلاعات ارزشمنشون رو در اختیار همه بگذارند.
با تشکر

idocsidocs
یک شنبه 02 مرداد 1390, 17:45 عصر
اگه از سرور اشتراکی استفاده می کنید سسشن ها رو توی دیتابیس ذخیره کنید.

هنگام ذغیره رمز عبور یه رشته تصادفی بهش اضافه کنید و بعد یک یا چند بار از sha1 استفاده کنید و رشته جدید رو هش کنید.

اطلاعات مهم لاگین مثل کلمه کاربری رو توی کوکی ذخیره نکنید.

Homayoon-T
یک شنبه 02 مرداد 1390, 17:56 عصر
سلام

به نظر من بهترین کار اینه که با فکر خودتون یه لاگین پیج بنویسید بعد کد رو اینجا بزارید ما بررسی کنیم و نتیجه رو به شما اعلام کنیم.

با تشکر

binyaft
یک شنبه 02 مرداد 1390, 18:03 عصر
ذخیره سشن در دیتابیس زمانی مهم هست که شما اطلاعات مهمی رو در سشن ها بریزید !
اما حالا که فقط یه مقدار true,false هست برای چک کردن لاگین کردن کاربر با یک ID کاربر ، اصلا نیاز به این کارا نیست !

برای هک کردن لاگین پیج فکر نکنم راهی به غیر از SQL injection باشه ! برای این روش هم PHP خودش تابع داره ;)

googoli
یک شنبه 02 مرداد 1390, 19:43 عصر
میشه تابعی که برای SQL injection در پی اچ پی هست رو بنویسید و یه نمونه مثال هم براش بزنید؟

idocsidocs
یک شنبه 02 مرداد 1390, 19:57 عصر
ذخیره سشن در دیتابیس زمانی مهم هست که شما اطلاعات مهمی رو در سشن ها بریزید !
اما حالا که فقط یه مقدار true,false هست برای چک کردن لاگین کردن کاربر با یک ID کاربر ، اصلا نیاز به این کارا نیست !

برای هک کردن لاگین پیج فکر نکنم راهی به غیر از SQL injection باشه ! برای این روش هم PHP خودش تابع داره ;)
توی سرورهای اشتراکی اگر سسن ها رو توی دیتابیس ذخیره نکنید یا اینکه پوشه تمپ رو عوض نکنید، سایرین به راحتی می تونن نشست شما رو به دزدن و به راحتی به همه امکانات و اختیارات فردی که لاگین کرده دسترسی پیدا کنن.

Arthas1990
دوشنبه 03 مرداد 1390, 05:13 صبح
idocsidocs کاملا درس میگه . (http://barnamenevis.org/member.php?162367-idocsidocs)
سشن هات بسیار خطرناکن . باید حتما مراقب باشی مخصوصا در سرورهای اشتراکی.
میتونی یک جدول وا3 permision صفحاتت درست کنی اگه level های امنیتی زیادن . که شامل لیست مجوز های دسترسی برای سطوح مختلف برای صفحات مختلفن . پیشنهاد یکی از دوستام که در امنیت کارش واقعا عالیه بود . توی پروژه ملی ازش استفاده کردم . واقعا عالی جواب میده .

idocsidocs
دوشنبه 03 مرداد 1390, 10:31 صبح
idocsidocs کاملا درس میگه . (http://barnamenevis.org/member.php?162367-idocsidocs)
سشن هات بسیار خطرناکن . باید حتما مراقب باشی مخصوصا در سرورهای اشتراکی.
میتونی یک جدول وا3 permision صفحاتت درست کنی اگه level های امنیتی زیادن . که شامل لیست مجوز های دسترسی برای سطوح مختلف برای صفحات مختلفن . پیشنهاد یکی از دوستام که در امنیت کارش واقعا عالیه بود . توی پروژه ملی ازش استفاده کردم . واقعا عالی جواب میده .

می شه در مورد روشی که دوستتون برای بالابردن امنیت استفاده کردن بیشتر توضیح بدید.

Arthas1990
دوشنبه 03 مرداد 1390, 16:04 عصر
jتوضیح سریعش اینجوریه که شما یک تیبل وا3 پرمیشن هاتون میسازید . مثلا اگر 15 تا سطح دسترسی دارین . 16 تا فیلد ایجاد میکنی تو تیبلت . یکیش وا3 نام صفحه و باقیش وا3 نام سطوحت . وا3 اینسرتش اینجوری مشیه که :
pageName | Admin1 | Admin2 | Admin3 | Admin n | Sec1 | Sec2 | Sec3 | Sec n
index.php | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1

این نمونه ساده ی سلکت تیبله

idocsidocs
دوشنبه 03 مرداد 1390, 16:57 عصر
jتوضیح سریعش اینجوریه که شما یک تیبل وا3 پرمیشن هاتون میسازید . مثلا اگر 15 تا سطح دسترسی دارین . 16 تا فیلد ایجاد میکنی تو تیبلت . یکیش وا3 نام صفحه و باقیش وا3 نام سطوحت . وا3 اینسرتش اینجوری مشیه که :
pageName | Admin1 | Admin2 | Admin3 | Admin n | Sec1 | Sec2 | Sec3 | Sec n
index.php | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1

این نمونه ساده ی سلکت تیبله
موقع اجرای یه اسکریپت می شه چک کرد که آیا کاربر مچوز انجام چنین کاری رو داره یا نه.

اما موقع نمایش ابزار و امکانات سایت باید چیکار کرد؟ به هرحال اگر امکان استفاده از یکی از ابزار سایت رو برای مدیر غیرقابل دسترسی کردیم، حالت استانداردش اینه که اون ابزار رو به مدیر نشون ندیم. و برای اینکار هم باید از شرطهای مختلفی توی سایت استفاده کرد تا نمایش ابزار مختلف وب سایت رو کنترل کرد.

در هنگام مدیریت نمایش امکانات وب سایت، مجوزها رو باید توی سسشن یا توی کوکی ذخیره کنیم و اگر امکانات زیادی توی سایت وجود داشته باشه باید از متغیرهای زیادی هم برای نگه داری مجوزهای دسترسی استفاده کنیم.

بنظرتون اینکار کمی سیستم رو کند نمی کنه؟

Arthas1990
دوشنبه 03 مرداد 1390, 17:20 عصر
من خودم همین سوال به ذهنم رسید . اما در سیستم های بزرگ باید تمامی ابزار ها رو ماژوله کرد تا . کنترل سیستم آسون شه .
تمامی ماژول ها در تیبل پرمیشن ذخیره میشه . اینجوری کنترل کاملی روی تمامی نقاط سیستم خواهیم داشت . علاوه بر این مانیتورینگ کاملی ایجاد میشه که با کمک اون تمامی کاربران رو رهگیری میکنیم .
شما درست میگید . باید ار سشن استفاده شه اما برای یک سیستم به 15 الی 20 و یا حتی بیشتر سطح دسترسی و ابزیار های گوناگون ذیگه نمیشه از سشن استفاده کرد . بعلاوه هنگام کنترل این تعداد سشن فشار زیادی روی سرور میاد (البته با حجم بالای درخواست هی همزمان) . در سیستم های عادی این کار بسیار از سرعت کم میکنه اما در سیستم های یزرگتر اینکار بسیار به سرعت سیستم کمک میکنه و بعلاوه امنیت رو برای هر بخش دسنه بندی و کنترل میکنه و امکان مانیتورینگ هم میده . از همه مهمتر کدنویسیه بسار کمی داره . هسته ی این سیستم در حدود 400 خط بیشتر نیست.
امیدوارم کمکی کرده باشم .

خیلی حرفیدم . میبخشید

idocsidocs
دوشنبه 03 مرداد 1390, 17:51 عصر
موقع اجرای یه اسکریپت می شه چک کرد که آیا کاربر مچوز انجام چنین کاری رو داره یا نه.

اما موقع نمایش ابزار و امکانات سایت باید چیکار کرد؟ به هرحال اگر امکان استفاده از یکی از ابزار سایت رو برای مدیر غیرقابل دسترسی کردیم، حالت استانداردش اینه که اون ابزار رو به مدیر نشون ندیم. و برای اینکار هم باید از شرطهای مختلفی توی سایت استفاده کرد تا نمایش ابزار مختلف وب سایت رو کنترل کرد.

در هنگام مدیریت نمایش امکانات وب سایت، مجوزها رو باید توی سسشن یا توی کوکی ذخیره کنیم و اگر امکانات زیادی توی سایت وجود داشته باشه باید از متغیرهای زیادی هم برای نگه داری مجوزهای دسترسی استفاده کنیم.

بنظرتون اینکار کمی سیستم رو کند نمی کنه؟
توی تعیین مجوزهای سیستم لینوکس از اعداد استفاده می کنن. از سه عدد که جمع این اعداد با هم نتیجه متفاوتی داره.

بنظرم استفاده از این روش بهتر هست. ولی باید حداقل 30 عدد پیدا کنیم که جمع این اعداد با هم نتیجه یکسانی بوجود نیاره.

نظرتون در این مورد چیه؟ آیا چنین لیستی از اعداد وجود داره که جمع کرد هر تعداد از اعداد نتیجه متفاوتی به همراه داره؟

eshpilen
دوشنبه 03 مرداد 1390, 18:50 عصر
آیا چنین لیستی از اعداد وجود داره که جمع کرد هر تعداد از اعداد نتیجه متفاوتی به همراه داره؟
برای هر آیتم یک بیت درنظر بگیرید.
برای آیتم اول بیت 0، برای آیتم دوم بیت 1، برای آیتم 30 ام بیت جایگاه 29، ... .

eshpilen
دوشنبه 03 مرداد 1390, 18:51 عصر
یک مورد دیگر که احتمالا نمیشه در یک سیستم لاگین درست و حسابی نادیده گرفت: Blocking Brute Force Attacks (https://www.owasp.org/index.php/Blocking_Brute_Force_Attacks)

Arthas1990
دوشنبه 03 مرداد 1390, 19:10 عصر
ممنون eshpilen جان .
درسته . بهتر اینه که تمامی نام ها و پس ها رندوم جنریت باشن تا این گونه حملات هم کمرنگ شن توی سیستم.

idocsidocs
دوشنبه 03 مرداد 1390, 19:43 عصر
برای هر آیتم یک بیت درنظر بگیرید.
برای آیتم اول بیت 0، برای آیتم دوم بیت 1، برای آیتم 30 ام بیت جایگاه 29، ... .
می شه در این مورد بیشتر توضیح بدید؟

چطور باید با استفاده از پی اچ پی یه بیت ایجاد کنم و طور باید این بیتها رو محاسبه کنم تا بتونم مجوزهای مدیر رو برای امکانات مختلف وب سایت بدست بیارم؟

eshpilen
دوشنبه 03 مرداد 1390, 20:23 عصر
حالا اصلا چرا از این روش استفاده کنیم؟ PHP یک زبان سطح بالاست، برنامه نویسی وب باید سطح بالا باشه. خوانایی و سادگی و سرعت برنامه نویسی خیلی مهمتر از اینه که بخوایم چند صد بایت به ازای هر صفحه صرفه جویی کنیم. بنظر بنده از یک آرایهء معمولی استفاده کنیم خیلی بهتره.
مثلا دسترسی های هر کاربر رو به شکل یک آرایه ذخیره و بازیابی کنید:

$access=array(
'edit_articles',
'delete_uploads',
'view_security_logs'
/* ... */
);
اگر میخواستیم یه برنامهء سیستمی یا سرویس دهنده بنویسیم یا شرایط خاص بود و مجبور بودیم یا تحت زبانی مثل سی و غیره کار میکردیم احتمالا قضیه فرق میکرد، ولی با PHP و در طراحی وب اپلیکیشن عادی چرا بیایم در سطح بیت کار کنیم؟
به هر شکلی از نظر برنامه نویسی راحت و سریع و ساده و خوانا هست باید کار رو انجام داد. این به خوانایی و سادگی و کوتاهی برنامه منجر میشه که تاثیر مثبت زیادی بر کاهش باگهای عملیاتی و امنیتی برنامه داره.
30 تا آیتم داری خب 30 تا عنصر آرایه داشته باش. چه اشکالی داره؟ آرایه های PHP خیلی هم منعطف هستن و در آینده کار گسترش و تغییر اونها هم خیلی راحت تره.

به شکل دیگه هم میشه کار کرد که کاربر دیگر هم قبلا اشاره کردن که ما بیایم یک جدول پرمیشن داشته باشیم که برای هر عملیات درش کاربرانی که میتونن اون عملیات رو اجرا کنن لیست شدن.

حالا اینکه این دو روش چقدر با هم فرق دارن و هرکدام در کجا مناسب هستن بحث خودش رو داره!

idocsidocs
دوشنبه 03 مرداد 1390, 21:18 عصر
حالا اصلا چرا از این روش استفاده کنیم؟ PHP یک زبان سطح بالاست، برنامه نویسی وب باید سطح بالا باشه. خوانایی و سادگی و سرعت برنامه نویسی خیلی مهمتر از اینه که بخوایم چند صد بایت به ازای هر صفحه صرفه جویی کنیم. بنظر بنده از یک آرایهء معمولی استفاده کنیم خیلی بهتره.
مثلا دسترسی های هر کاربر رو به شکل یک آرایه ذخیره و بازیابی کنید:

$access=array(
'edit_articles',
'delete_uploads',
'view_security_logs'
/* ... */
);
اگر میخواستیم یه برنامهء سیستمی یا سرویس دهنده بنویسیم یا شرایط خاص بود و مجبور بودیم یا تحت زبانی مثل سی و غیره کار میکردیم احتمالا قضیه فرق میکرد، ولی با PHP و در طراحی وب اپلیکیشن عادی چرا بیایم در سطح بیت کار کنیم؟
به هر شکلی از نظر برنامه نویسی راحت و سریع و ساده و خوانا هست باید کار رو انجام داد. این به خوانایی و سادگی و کوتاهی برنامه منجر میشه که تاثیر مثبت زیادی بر کاهش باگهای عملیاتی و امنیتی برنامه داره.
30 تا آیتم داری خب 30 تا عنصر آرایه داشته باش. چه اشکالی داره؟ آرایه های PHP خیلی هم منعطف هستن و در آینده کار گسترش و تغییر اونها هم خیلی راحت تره.

به شکل دیگه هم میشه کار کرد که کاربر دیگر هم قبلا اشاره کردن که ما بیایم یک جدول پرمیشن داشته باشیم که برای هر عملیات درش کاربرانی که میتونن اون عملیات رو اجرا کنن لیست شدن.

حالا اینکه این دو روش چقدر با هم فرق دارن و هرکدام در کجا مناسب هستن بحث خودش رو داره!

من دنبال یه راه سریع برای بدست آوردن متغیرهای مربوط به مجوزهای دسترسی مدیران هستم.

قرار دادن تعداد زیاد متغیر توی کوکی یا سسشن چندان منطقی به نظر نمی رسه.

استفاده از آرایه روش مناسب تری هست.

حالا مشکل اینجاست که آرایه رو چطور توی پایگاه داده ذخیره کنم؟

eshpilen
دوشنبه 03 مرداد 1390, 21:40 عصر
حالا مشکل اینجاست که آرایه رو چطور توی پایگاه داده ذخیره کنم؟
اولین چیزی که مد نظرم بود serialize (http://php.net/manual/en/function.serialize.php) کردن بود.
یعنی توی دیتابیس این آرایه رو در یک فیلد ذخیره میکنیم. حالا نوع فیلدش دقیقا نمیدونم. varchar یا text شاید.

idocsidocs
دوشنبه 03 مرداد 1390, 21:51 عصر
اولین چیزی که مد نظرم بود serialize (http://php.net/manual/en/function.serialize.php) کردن بود.
یعنی توی دیتابیس این آرایه رو در یک فیلد ذخیره میکنیم. حالا نوع فیلدش دقیقا نمیدونم. varchar یا text شاید.
توی سایتهای بزرگ، اگه بخوایم توی هر صفحه برای نمایش دادن امکانات سایت، مجوزها رو بررسی کنیم، به شرطهای زیادی احتیاج پیدا می شه.

از طرفی خواندن و پردازش آرایه ای که این مجوزها رو توی خودش ذخیره کرده هم خودش منابعی اتلاف می کنه.

آیا استفاده از این روش، توی بازدیدهای بالای 1000 نفر باعث کند شدن سیستم نمی شه؟

eshpilen
دوشنبه 03 مرداد 1390, 22:10 عصر
توی سایتهای بزرگ، اگه بخوایم توی هر صفحه برای نمایش دادن امکانات سایت، مجوزها رو بررسی کنیم، به شرطهای زیادی احتیاج پیدا می شه.خب؟ شما بجاش راه حلی دارید؟
اگر میخوای کنترل کنی باید چک کنی دیگه!!
کنترل و امنیت که بدون شرط و هزینه نمیشه.


از طرفی خواندن و پردازش آرایه ای که این مجوزها رو توی خودش ذخیره کرده هم خودش منابعی اتلاف می کنه.همه چیز منابعی مصرف میکنه.
شما چیز مناسبی سراغ دارید که منابع خیلی کمتری مصرف کنه و از نظرهای دیگه عیب و نقصی نداشته باشه؟


آیا استفاده از این روش، توی بازدیدهای بالای 1000 نفر باعث کند شدن سیستم نمی شه؟ نمیدونم. باید عملا تست کرد.
خیلی کارها و سیستمهای دیگه هم برای یک سایت و اپلیکیشن کار میکنن که منابع حتی بیشتری مصرف میکنن. اونا موجب کند شدن سیستم نمیشن؟ بعد اونوقت ما باید چیکار کنیم؟!

idocsidocs
دوشنبه 03 مرداد 1390, 23:48 عصر
خب؟ شما بجاش راه حلی دارید؟
خیلی کارها و سیستمهای دیگه هم برای یک سایت و اپلیکیشن کار میکنن که منابع حتی بیشتری مصرف میکنن. اونا موجب کند شدن سیستم نمیشن؟ بعد اونوقت ما باید چیکار کنیم؟!

مشکل همینه که راهی دیگه ای نیست و باید یکی رو انتخاب کرد.

برای سیستم های حرفه ای بهتره که از راه سخت یعنی قرار دادن متغیرها توی آرایه استفاده کرد وتوی سیستمهای ساده یه سیستم مجوز دهی سه سطی ایجاد می کنم.

sobhangh
پنج شنبه 06 مرداد 1390, 14:51 عصر
سلام
با تشکر از دوستان.
بحث من در قدم اول هست.
یک نفر ثبت نام می کنه. راههای ساده ای مثل کد گذاری پسورد وجود داره که خب.
بحث دقیقا اینجاست من هیچ چیزی از امنیت و هک نمی دونم.
توی سایت قراره id طرف توی سشن جا به جا بشه. اینجور کار ها از نظر امنیت چقدر می تونه خطر ناک باشه؟
چون سایت که من دارم یک نوع سطح دسترسی بیشتر نداره و بیشتر تمرکز من بر روی لو نرفتم پاسورد و یوزر هست.
پس نکته مهم برای من همون کد Login هست که از چه طریق هایی امن تر بشه؟ یعنی به راحتی نشه هکش کرد.
چون آموزش های هک مختصری که دیدم به راحتی و از نقطه ضعف های کوچک سایت به طور کامل هک می شد.
خواهشن دوستان در مورد پوشاندن اون نکات توضیجاتی بدن.
با تشکر

googoli
پنج شنبه 06 مرداد 1390, 19:05 عصر
من برای تعیین سطح دسترسی این کار رو کردم اگر دوستان نظر خودشون رو در این مورد بگن که حوشحال میشم


<?
$access='';
$ok_cookie = false;
include('signin.php');
if (!$ok_cookie) {exit;}
if (isset($_REQUEST['bankname'])) $bankname=$_REQUEST['bankname'];
if (isset($_REQUEST['code'])) $code=$_REQUEST['code'];
if (isset($HTTP_COOKIE_VARS['c_user']))$user_name=$HTTP_COOKIE_VARS['c_user'];
$password='';
require_once("../include/connect.php");
if ($code!=''){
$query=mysql_query("select * from $bankname where code='$code'");
$row=mysql_fetch_assoc($query);
$username=$row['username'];
$password=$row['password'];
$access=$row['access'];
}
if (isset($_REQUEST['_submit'])){
$access='';
$idaccount = $_REQUEST['idaccount'];
$username=$_REQUEST['username'];
$password=$_REQUEST['password'];
$password=md5($password);
if ($username!=$user_name){
echo '<script>alert("شما اجازه اصلاح اين کاربر را نداريد");</script>';
exit;
}
if (count($idaccount)>0) {
foreach ($idaccount as $index => $value){
$access.=$value;
}
}
if ($access=='') $access=$_REQUEST['access'];
if ($code==''){
$insert="insert into $bankname (username,password,access) values('$username','$password','$access')";
mysql_query($insert);
}else{
$update="update $bankname set username='$username',password='$password',access=' $access' where code='$code'";
mysql_query($update);
setcookie ("c_pass",$password,time()+36000);
}
header("Location: list_user.php?bankname=$bankname");
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<link href="form.css" type="text/css" rel="stylesheet">
</head>
<script language=jscript src="../java/farsi.js"> </script>
<script>
function check() {
var form = document.adduser;
if (form.username.value == "" ) {
alert("لطفا نام و نام خانوادگي و نام کاربري و خود را وارد نماييد");
return false;
}
if (form.password.value=='') {
alert('لطفا رمز عبور خود را تعيين نماييد ');
return false;
}
if (form.password.value.length<4) {
alert('حداقل طول کلمه رمز 4 حرف مي باشد ');
return false;
}
if (form.password.value != form.repassword.value) {
alert('رمزهاي عبور وارده شده باهم يکي نيست ');
return false;
}
}
function checkAll(oElement) {
oForm = oElement.form;
oElement = oForm.elements[oElement.name];
if(oElement.length)
{
bChecked = oElement[0].checked;
for(i = 1; i < oElement.length; i++)
oElement[i].checked = bChecked;
}
}
form.submit();
</script>
<body>
<br />
<div align="center"><font color="red" face="Tahoma" size="3">افزدودن کاربر</font></div>
<br />
<br />
<form name="adduser" method="POST" onsubmit="return check();">
<input type="Hidden" name="bankname" value="<?php echo $bankname; ?>">
<input type="Hidden" name='_submit' value='yes'>
<input <?php if (ereg('G',$access)){echo 'disabled';}?> type="Hidden" name='username' value="<?php if (!ereg('G',$access)){echo $username;}?>">
<input <?php if (ereg('G',$access)){echo 'disabled';}?> type="Hidden" name='access' value="<?php if (!ereg('G',$access)){echo $access;}?>">
<input type="Hidden" name='code' value='<?echo $code;?>'>
<table width="100%" cellpadding="6" cellspacing="0">
<tr>
<td align="right"><input <?php if (!ereg('G',$access)){echo 'disabled';}?> name="username" tabindex="1" maxlength="20" size="50" onkeypress="farsi()" value="<?echo $username;?>" /></td>
<td align="right" width="20%"><font color="blue" face="Tahoma" size="2">:نام کاربري</font></td>
</tr>
<tr>
<td align="right"><input name="password" type="password" tabindex="2" maxlength="20" size="50" value="<?echo $password?>" /></td>
<td align="right" width="20%"><font color="blue" face="Tahoma" size="2">: کلمه عبور</font></td>
</tr>
<tr>
<td align="right"><input name="repassword" type="password" tabindex="2" maxlength="20" size="50" /></td>
<td align="right" width="20%"><font color="blue" face="Tahoma" size="2">: تکرار کلمه عبور</font></td>
</tr>
</table>
<table border="0" width="100%" cellpadding="2" cellspacing="0" height="10%">
<tr bgcolor="#E4E9E8" >
<td align="center" colspan="5" ><font color="blue" face="Tahoma" size="2">مجوز دسترسي</font></td>
<td align="right" width="20%"><font face="Tahoma" size="2">انتخاب همه</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> type="checkbox" id="checkall" name="checkall" onclick="checkAll(this);" <?php if (ereg('FEDCBAMKJIHG',$access)){echo " checked";}?> /></td>
</tr>
<tr>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="F" type="checkbox" <?php if (ereg('F',$access)){echo " checked";}?> /></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="E" type="checkbox" /<?php if (ereg('E',$access)){echo " checked";}?>></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="D" type="checkbox" /<?php if (ereg('D',$access)){echo " checked";}?>></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="C" type="checkbox" <?php if (ereg('C',$access)){echo " checked";}?>/></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="B" type="checkbox" <?php if (ereg('B',$access)){echo " checked";}?> /></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="A" type="checkbox" <?php if (ereg('A',$access)){echo " checked";}?> /></td>
</tr>
<tr>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="M" type="checkbox" <?php if (ereg('M',$access)){echo " checked";}?>/></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="K" type="checkbox" <?php if (ereg('K',$access)){echo " checked";}?>/></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="J" type="checkbox" <?php if (ereg('J',$access)){echo " checked";}?>/></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="I" type="checkbox" <?php if (ereg('I',$access)){echo " checked";}?>/></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="H" type="checkbox" <?php if (ereg('H',$access)){echo " checked";}?>/></td>
<td align="right"><font color="red" face="Tahoma" size="2">قسمت</font><input <?php if (!ereg('G',$access)){echo 'disabled';}?> id="checkall" name="idaccount[]" value="G" type="checkbox" <?php if (ereg('G',$access)){echo " checked";}?>/></td>
</tr>
</table>
<br /><br />
<div align="center">
<input type="button" name="cancel" value="بازگشت" style="font-family:tahoma;font-size:11;" onclick="javascript:window.location.href='<?php echo "list_user.php?bankname=$bankname";?>'" />
<input type="submit" name="ok" value="تاييد" style="font-family:tahoma;font-size:11;" />
</div>
</form>
</body>
</html>