ارتقاء قوانین اعتبارسنجی unique و exists در لاراول

ارتقاء قوانین اعتبارسنجی unique و exists در لاراول
ارتقاء قوانین اعتبارسنجی unique و exists در لاراول

استفاده از validation rules در لاراول بسیار سادست. ValidatesRequests یه ویژگی بسیار قدرتمنده که به صورت خودکار توسط include, BaseControllerمیشه و قوانین بسیار مفیدی برای کدهایی که بیشتر مورد استفاده است،ارائه میکنه.

۲ قانون unique و exists برای اعتبار سنجی data های ذخیره شده روی database استفاده میشن و همیشه به فرمتی که در زیر آورده شده، میان:

1
2
3
4
// exists example
'email' => 'exists:staff,account_id,1'
// unique example
'email' => 'unique:users,email_address,$user->id,id,account_id,1'

همونطور که مشاهده میکنید Style نوشته شدنشون خیلی آسون نیست و نمیشه به راحتی به خاطر سپردش و البته در عین حال چیزیه که شما همیشه در Document هاتون بهش احتیاج دارین.

با استفاده از Laravel v5.3.18  این ۲ قانون توسط معرفی یک کلاس Rule ساده شدند.مثال بالا رو به شکل ساده تری میتونین مشاهده کنین:

1
2
3
4
5
6
'email' => [
    'required',
    Rule::exists('staff')->where(function ($query) {
        $query->where('account_id', 1);
    }),
],
1
2
3
4
5
6
'email' => [
    'required',
    Rule::unique('users')->ignore($user->id)->where(function ($query) {
        $query->where('account_id', 1);
    })
],

 

هر دوی این validation rule ها متدهای:

  • where
  • whereNot
  • whereNull
  • whereNotNull

را پشتیبانی میکنند.

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

یکی دیگه از مزایای استفاده از این ویژگی اینه که فرمت قبلی هم به طور کامل پشتیبانی میشه و کافیه توسط متد formatWheres  به شکل و فرمت قبلی تبدیلش کنید:

1
2
3
4
5
6
protected function formatWheres()
{
    return collect($this->wheres)->map(function ($where) {
        return $where['column'].','.$where['value'];
    })->implode(',');
}

برای گرفتن آخرین ورژن لاراول کافیه که composer update را run کنید و پس از دانلود ورژن 5.3.18  از ویژگی های آن استفاده کنید و لذت ببرید.

مشکل امنیتی لینوکس 0day linux dirty cow

مشکل امنیتی لینوکس 0day linux dirty cow
مشکل امنیتی لینوکس 0day linux dirty cow

یک مشکل امنیتی فوق العاده مهم که در کرنل لینوکس کشف شده باگ Zero Day از نوع Local Privilege Escalation (ارتقا سطح دسترسی) است. لازم به ذکر است که این باگ حدود ۱۱ سال پیش یعنی از سال ۲۰۰۵ وجود داشته

با استفاده از این باگ کاربران معمولی هاست که دسترسی با یوزر محدود به سیستم عامل لینوکس دارند. می توانند دسترسی root از سیستم بگیرند. این مشکل با کد CVE-2016-5195 و نام «گاو کثیف» یا همان ” Dirty COW” شناخته می شود.

توزیع های لینوکسی که باگ CVE-2016-5195 شامل حال آنها می شود به این شرح است:

Red Hat Enterprise Linux 7.x
Red Hat Enterprise Linux 6.x
Red Hat Enterprise Linux 5.x
CentOS Linux 7.x
CentOS Linux 6.x
CentOS Linux 5.x
Debian Linux wheezy
Debian Linux jessie
Debian Linux stretch
Debian Linux sid
Ubuntu Linux precise (LTS 12.04)
Ubuntu Linux trusty
Ubuntu Linux xenial (LTS 16.04)
Ubuntu Linux yakkety
Ubuntu Linux vivid/ubuntu-core
SUSE Linux Enterprise 11 and 12

نحوه تشخیص آسیب پذیری :

برای تشخیص این باگ شرکت ردهت اسکریپتی آماده کرده است که می توانید از آن برای توزیع های مبتنی بر RHEL استفاده کنید. برای اینکار ابتدا باید آن را دریافت کنید :
1

#wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.sh

و بعد از ان این دستورات را اجرا کنید
1
2

#chmod +x rh-cve-2016-5195_1.sh
#./rh-cve-2016-5195_1.sh

در صورتی که سیستم عامل آسیب پذیر باشد این خطا مشاهده می شود:

Your kernel is 2.6.32-642.3.1.el6.x86_64 which IS vulnerable.
Red Hat recommends that you update your kernel. Alternatively, you can apply partial

تصویری از خطا

رفع مشکل امنیتی لینوکس 0day linux dirty cow
رفع مشکل امنیتی لینوکس 0day linux dirty cow

جهت شناسایی این مشکل بر روی سایر توزیع های دیگر می توانید ابتدا فایل زیر را دریافت کنید
1

$ wget https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c

حالا کافیست یک بار به کاربر root وارد شوید و یک رشته را درون یک فایل بنویسید :
1
2

$ sudo -s
# echo this is not a test foo

اکنون کافیست تا با کاربر معمولی دستور را اجرا کنید
اکنون فایل ساخته شده را به صورت پایین اجرا کنید
1

$ gcc -lpthread dirtyc0w.c -o dirtyc0w
1

$ ./dirtyc0w foo m00000000000000000
1

$ cat foo

پس از اینکار در صورت وجود مشکل بر روی سیستم، متن مشاهده شده در فایل foo با مقدار اولیه متفاوت خواهد بود.

عکس زیر را برای درک بهتر مشاهده کنید

0day linux dirty cow
0day linux dirty cow

ایمن سازی و حل این مشکل :

جهت رفع این مشکل امنیتی بر روی CentOS و RHEL کافیست این دستورات را اجرا کنید:

1
2
3

#yum update

#reboot

دستورات برای حل این مشکل در Debian و Ubuntu :

1
2
3

$sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

$sudo reboot

برای کسب اطلاعات بیشتر در مورد این مشکل امنیتی می توانید به لینک های ذیل مراجعه نمایید

https://access.redhat.com/security/vulnerabilities/2706661

http://dirtycow.ninja

معرفی نرم افزار SSA

معرفی نرم افزار SSA
معرفی نرم افزار SSA

نرم افزار Smart storage administrator یکی از نرم افزارهایی است که روی سرورهای G9 اضافه شده است و در واقع نسخه بهینه شده نرم افزار ACU است که از آن برای پیکربندی دیسک ها و همچنین مدیریت آنها استفاده می شود.

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

همچنین در این نرم افزار ابزای بنام ADU وجود دارد که برای انجام تست روی دیسک ها، کنترلر و Cache مورد استفاده قرار می گیرد.

نرم افزار Smart storage administrator یکی از نرم افزارهایی است که روی سرورهای G9 اضافه شده است و در واقع نسخه بهینه شده نرم افزار ACU است که از آن برای پیکربندی دیسک ها و همچنین مدیریت آنها استفاده می شود. به عنوان مثال برای اینکه یک هارد را به عنوان Spare تنظیم کنیم باید از این نرم افزار استفاده کنیم. همچنین در این نرم افزار ابزای بنام ADU وجود دارد که برای انجام تست روی دیسک ها، کنترلر و Cache مورد استفاده قرار می گیرد. نمونه کنسول این نرم افزار در عکس زیر قابل نمایش است:

دیگر قابلیت ها
Simplify Deployment, Configuration, and Management

Monitor and Diagnose potential problems

Expand capacities, Enhance data protection, Optimize performance

تفاوت رم های Original و OEM

تفاوت رم های Original و OEM
تفاوت رم های Original و OEM

اگر متوجه شدیم فروشنده ای به عمد یا غیر عمد به ما رم OEM تحویل داده است باید قبول کنیم یا نه؟

آیا باید رم OEM خریداری کنیم یا نه؟

بازار RAM همیشه یکی از متنوع ترین بازارها و مشکل ترین آنها جهت شناسایی کالای اورجینال از قلابی بوده است. همانطور که می دانید شرکت های HP و IBM و … تولید کننده RAM نیستند و از محصولات شرکت های دیگر مانند Samsung و Hynix استفاده می کنند و برای اعلام اصل بودن کالای توزیع شده از کانال مجاز خود از یک هولوگرام استفاده می کنند. تا یکی دو سال قبل بعلت بالا بودن قیمت ماژول های RAM ، تولید کننده های رم های OEM با خرید چیپ ست های اصل از شرکت هایی نظیر سامسونگ و مونتاژ آن روی بورد توسط خودشان اقدام به عرضه RAM های غیر اصل می کردند. این RAM ها بعلت کیفیت پایین مونتاژ معمولا خوب کار نمی کردند و مشکلات فراوانی ایجاد می شد. از تقریبا یک سال قبل و با کاهش شدید قیمت جهانی ماژول های رم، دیگر تولید و مونتاژ رم توسط چینیها برایشان به صرفه نمی باشد و آنها با خرید ماژول های اورجینال از شرکت های تولید کننده مثل سامسونگ و هاینیکس اقدام به نصب لیبل و هولوگرام غیر اصل اچ پی رو آن می کنند و بعبارت دیگر نوع عرضه رم های OEM تغییر کرده است. بدیهی است در حال حاضر ماژولی که تحت نام OEM عرضه می شود از نظر فیزیکی، تکنیکال و پرفورمنس تفاوت کمی با رم اصلی ارائه شده توسط شرکت اچ پی دارد و تنها از کانال مجاز اچ پی عرضه نشده و هولوگرام روی آن هم تقلبی می باشد. تنها باید بدانید که فروشنده آنها را با قیمت خیلی ارزانتری خریده است.

در بسیاری مواقع قطعات غیراورجینال تحت عنوان قطعه اصلی به فروش می رود و در این زمان تنها راه تشخیص، داشتن اطلاعات فنی و مهارت در شناسایی قطعه اصلی و خرید ازمنابع معتبر می باشد. در این مقاله قصد داریم راهنمایی که توسط کمپانی اچ پی برای شناسایی هارد و حافظه (RAM) اصلی منتشر شده را بیاوریم.

قطعه غیراورجینال ( یا به اصطلاح رایج OEM ) چیست و چه مضراتی دارد؟

تولید قطعات سیستم های اچ پی در کارخانه هایی صورت می گیرد که تحت استانداردهای تعین شده اچ پی به تولید قطعات می­ پردازند. کلیه قطعات تولید شده بایستی مراحل کنترل کیفیت و تست های متعدد اچ پی را بگذرانند. در صورتی که قطعه ای این تست ها را با موفقیت طی نکند، یک کد شناسایی (ID) به آن تعلق می گیرد تا نتواند به هیچ وجه وارد موجودی محصولات اچ پی شود. این قطعه ها و یا سایر قطعاتی که در این کارخانه ها تولید می شود ولی گواهی تأییدیه اچ پی را ندارند، تحت عنوان OEM به بازار عرضه می شوند.

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

افزایش مدت Down time سرور و توقف کار
از دست دادن داده ها
عدم سازگاری با سایر قطعات سرور
وارد کردن آسیب به سایر قطعات و تجهیزات سرور
تحمیل هزینه های جایگزینی قطعات، تست، بازیابی اطلاعات، اجرت و ایاب و ذهاب و …

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

ضمناٌ در بسیاری مواقع این قطعات غیراورجینال تحت عنوان قطعه اصلی به فروش می رود و در این زمان تنها راه تشخیص، داشتن اطلاعات فنی و مهارت در شناسایی قطعه اصلی و خرید از منابع معتبر می­ باشد. در زیر راهنمایی که توسط کمپانی اچ پی برای شناسایی هارد و حافظه (RAM) اصلی منتشر شده می آوریم.

گزینه های تشخیص هاردهای اصلی Hp از تقلبی:

1: برچسب پلمپ روی درب بسته بندی:
این برچسب دارای ویژگی های امنیتی مشابه برچسب امنیتی روی محصول است. جنس این برچسب از مواد تجزیه پذیری است که اجازه نمی دهد بدون آسیب رسیدن به پلمپ از روی جعبه جدا شود و هنگام باز کردن جعبه ی دستگاه پاره می­ شود. اگر بسته ای برچسب پلمپ نداشته باشد و یا دستکاری شده باشد، اعتبار آن زیر سوأل می رود.

2: برچسب روی بسته بندی:
برچسبی که روی سطح بیرونی بسته بندی قرار می گیرد و حاوی اطلاعات شناسایی محصول، مبدأ آن، و جزئیات ضروری برای ردیابی محصول توسط اچ پی یا کارخانه سازنده آن می باشد.

3: بسته بندی بین المللی:
بسته بندی محصولات اچ پی کاملاٌ ایمن و محافظت شده است. بسته بندی هاردهای اچ پی شامل نگهدارنده حرارتی، فوم نگهدارنده و بسته بندی آنتی­ استاتیک می­ باشد.

4: برچسب روی هارد:
این برچسب روی هاردهای اچ پی ممکن است با اشکال مختلف باشد، که لوگوی اچ پی یا کارخانه سازنده آن را داشته باشد و حاوی اطلاعات محتویات آن و جزئیات مربوط به ردیابی محصول است. همه هارد درایوهای اچ پی دارای برچسب امنیتی اچ پی هستند که زمان تولید قطعه در کارخانه روی آن نصب می­ شود.

5 : برچسب امنیتی اچ پی:
اچ پی برای اعتبار سنجی محصولات خود برچسب های امنیتی مختلفی را به کار می برد. این برچسب ها دارای لایه های امنیتی آشکار و پنهانی هستند تا ازجعل شدن آنها جلوگیری شود. چند ویژگی از این لایه­ های امنیتی به شرح زیر است :

الف) نوار امنیتی که دارای دایره هولوگرافیکی است که از hp به ok و حالت بی نور تغییر می­ کند.

ب) سه خط متن با سایزهای متفاوتOk که روشن و خاموش می شود. بزرگترین فونت سایز آن با دایره هولوگرافیک به طور متناوب تغییر می کند.

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

6: شماره سریال:
روی هر بسته هارد اچ پی یک شماره سریال وجود دارد که با کد امنیتی (S/C) و یا کد پیگیری (CT) چاپ شده روی برچسب محصول مرتبط است. به منظور جلوگیری از تقلب رایج بازار که از شماره سریال های روی محصولات اصلی اچ پی برای محصولات تقلبی استفاده می­ شود، این شماره سریال روی برچسب محصول چاپ نمی شود بلکه با کدامنیتی و یا کد پیگیری چاپ شده بر روی برچسب آن مرتبط است. برای سنجش اعتبار شماره سریال آن باید با ایمیل مربوط به شرکت اچ پی با آدرس [email protected] مکاتبه نمایید.

7: ضخامت برچسب امنیتی :
گوشه سمت راست برچسب جایی که نوار امنیتی قرار گرفته، به قدری ضخامت کمی دارد که با ناخن خود نمی توانید آن­ را بگیرید.

8 : اثر امنیتی زیر برچسب :
برای تأیید اعتبار برچسب می توانید بخشی از برچسب را از جای خود بلند کنید، باید اثری مانند تصویر زیر دیده شود.( توجه: اینکار باعث می شود کالا از گارانتی خارج شود)گزینه های تشخیص حافظه های(RAM) اصلی Hp از تقلبی :

1: بسته بندی:
در صورتی که حافظه (Pack) اچ پی را خریداری می­ کنید بایستی دارای بسته ­بندی طلقی تاشو باشد که عایق حرارتی و آنتی استاتیک است. در غیر اینصورت (سایر بسته بندی ها) کالا غیراورجینال می باشد. در صورتی که حافظه ­ی بدون بسته بندی (Tray) خریداری می کنید، بایستی از منبع خرید خود مطمئن باشید و به برچسب امنیتی روی خود حافظه دقت کنید.

2: برچسب امنیتی :
این برچسب امنیتی دارای ویژگی­ هایی مشابه برچسب های امنیتی هاردهاست که در بالا آورده شد . این برچسب، هم روی لبه بالای بسته بندی در بخش تاشو آن نصب می شود و هم بر روی خود حافظه (RAM) قرار می گیرد. امکان ندارد که بتوان بدون آسیب رساندن به برچسب، آن را از روی بسته بندی برداشت و موقع بازکردن بسته بندی نیز به راحتی پاره می­شود. لذا درصورتی که بسته بندی برچسب امنیتی ندارد و یا دستکاری شده است باید به اورجینال بودن کالا شک کنید.