رفتن به مطلب
مرورگر پیشنهادی آرساکیا گیم مرورگر های تحت موتور کرومیوم می‌باشد، برای دانلود روی مرورگر انتخابی خود کلیک کنید
Google Chrome Microsoft Edge Ungoogled Chromium Brave Opera GX Opera

ارسال‌های توصیه شده

In the name of God

 

سلامممممممم خدمت تمامی دوستان عزیز

 

امیدوارم حالتون خوب و حال دلتون از خودتون بهتر باشه

 

واقعیتش اینه که میخوام خطرناک ترین و جذاب ترین ویروس سروری رو بهتون معرفی کنم...

ویروسی که ۷۴.۴ درصد وب سایت های جهان رو درگیر خودش کرده!

خب معرفی میکنم...

این شما... و اینم PHP!

اشتباه نکنید, منظورم همون زبان برنامه نویسی محبوبه هستش!

 

حالا بدون مقدمه میرم سراغ اصل مطلب...

 

۱- داستان چیه؟

دوستان, داستان از این قرار هستش که من دارم یه سایتی رو برای گروهمون میسازم (که بعضی از دوستان میدونن چه گروهی رو میگم), این گروهمون به زبان PHP خام هستش (یعنی بدون فریم ورک)

حالا بعد از چندین مدت, وارد سایتم شدم

اولش دیدم عه, داره به روت سایت, ارور میده و میگه که مموری پر شده!

پشمام ریخته بود!‌ ۲۵۶ مگابایت رم پر شده بود؟؟ یه سایت ساده! غیرممکن بود

زیادش کردم... ولی دیدم هنوز نوشته ۲۵۶ مگابایت!

بعد تازه متوجه شدم که داستان چیه =))

چون سایت ما از PHP-FPM استفاده میکرده و توی لینوکس (دبیان) PHP-FPM کانفیگش فرق داره با PHP خالی (البته که شایان ذکر هستش نه فقط در لینوکس, در تمام سیستم عامل ها)

و من, PHP-CLI رو در اصل تغییر داده بودم کانفیگش رو

خلاصه که بعد رفتم توی مسیر /etc/php/8.4/fpm/pool.d و... کانفیگ رو عوض کردم و هزار تا داستان دیگه و مموری رو زیاد کردم

کردم ۱ گیگابایت!

چی شد؟؟؟ ۱ گیگابایت درجا پر شد!!!!

میدونید یعنی چی؟؟ ۱ گیگابایت!!!

پروژه ی من داشت یه ویروس تحت وبی خیبی قدرتمند میشد!!!

یه وب سایت خیلی ساده با تم فضایی و انیمیشن های نسبتا سنگین (شهاب سنگ با SVG PATH و انیمیشن با سی اس اس, ستاره های سه حالته (نزدیک (شفاف), متوسط (کمتر شفاف), دور (یه نقطه ی خالی)) و...)

خلاصه که این رو که دیدم قلبم ریخت, بعد حالا اومدم مسیر فایل رو تغییر دادم و فرستادمش توی یه پوشه ی دیگه به دلایلی...

صبح که رفتم, با ارور ۵۰۰ مواجه شدم... (البته اینم شایان ذکر هستش که از لایت اسپید استفاده میکردم قبلا اما الان بک دادم به Nginx به دلایل ناسازگاری کانفیگ)

آقا هی برو, هی بیا و...

متوجه این شدم که location @front که توی ۲۶ تا از موقعیت ها.... چیز ببخشید, یعنی توی همه جا ازش استفاده کردم وجود نداره

اومدم تعریفش کردم و اینا و کلی دردسر

ارور ۵۰۰ فیکس شد شد ۵۰۲ (بد گیت وی)

بعد منو میگی؟ کارت میزدی خونم در نمیومد! یه شبانه روز دیباگ کن, یه ارور دیگه

خلاصه که نتیجه ی تا ۴ صبح بیدار موندن هام شدش اینکه ارور ۵۰۲ رفع شد

داستان چی بود؟

به جای اینکه لاگ های error.log عه www.webname.com (ویرچوال هاست استفاده میکنم واسه همین...) چک نکرده بودم و گفتم خب دیگه باو من که یه پا دیباگرم

بعد بررسی کردم با tail -f دیدم چه ارور مسخره و مذخرفی بود

نگو به جای اینکه درخواست ها رو به PHP-FPM Port (127.0.0.1:9000) بفرستم, داشتم به سوکت یونیکسیش میفرستادم!

یعنی دیگه از طبقه ی ۵ام میخواستم خودمو پرت کنم پایین از دست این کارا!  =))

خلاصه که ۵۰۲ رفع شد دوباره به مموری برخوردم

آقا هی میگفت توی Controller.php (من از Laravel, Symfony و... و معماری MVC استفاده نمیکنم, چون از PHP خام و معماری خاص خودم استفاده میکنم در اصل) خط ۲۲ سعی کردی ۱۶ مگابایت بیشتر به حافظه بدی (سریع میگم: سه تا کلاس توی کانستراکتور کلاس Controller بودن, یکیشون Validator, یکیشون Mailer, و دیگری Logger), اولش فکر کردم مشکل از Logger هستش, چون لاگر داخل خط ۲۲ بود

ولی نه, جای میلر (خط ۲۳) رو با لاگر (خط ۲۲) عوض کردم دیدم داره به میلر هم گیر میده!

آقا تا فردا صبحش خوابیدیم بعد بیدار شدیم به امید اینکه کد ها دیباگ شده باشن!

دیدیم نه باو رویای شیرینی بود ولی

خلاصه اومدیم یه نگاه انداختیم به کد ها

متوجه شدم ارور به قبل از خط ۲۲ (خط ۲۱ که Validator بود) مربوطه بعد از کلی تفکر و زولیدن به این سه تا خط افسانه ای! (۲۱, ۲۲ و ۲۳)

خلاصه که فایل Validator.php رو هم باز کردیم و نگاه انداختیم بهش و زولیدیم به کد ها...

آقا منو میگی؟ بال درآوردم!

متوجه چی شدم؟

دوران وابستگی ها! (Circular Dependency)

بعد از ۳-۴ روز دیباگ, بالاخره متوجه شدم که دوران وابستگی ها بین Validator و Controller به وجود اومده

Validator توی خودش داره Controller رو صدا میزنه و new میکنه, و Controller هم داره Validator رو صدا میزنه و new میکنه

همین باعث شد توی یه حلقه ی بینهایت قرار بگیرن حتی ۱ گیگابایت مموری هم سر خم کنه جلوی این ویروس عظیم!

با یه حرکت ساده, PHP رو ماتش کردم!

توی Validator نوشتم:
 

<?php

private $controller;
function __construct(Controller $controller)
{
    $this->controller = $controller;
}

و توی Controller تنها کاری که کردم این بود:

<?php

private $validator;
function __construct()
{
  $this->validator = new Validator($this);
}

همین کد افسانه ای که جا افتاده بود, باعث شد ۱ گیگابایت در عرض چند ثانیه درجا پر بشه!

 

خب, خلاصه ی موضوع ماهم همین بود

امیدوارم که براتون جالب بوده باشه, شب و روز بر همتون خوش! خدانگهدار!

 

 

 

 

 

NO Thing to DO

:My Account

Faise.png

:My Brothers

Olden.png

Parshan.png

MohammadAli.png

Shibemarg.png

9 ساعت قبل، Integer گفته است:

In the name of God

 

سلامممممممم خدمت تمامی دوستان عزیز

 

امیدوارم حالتون خوب و حال دلتون از خودتون بهتر باشه

 

واقعیتش اینه که میخوام خطرناک ترین و جذاب ترین ویروس سروری رو بهتون معرفی کنم...

ویروسی که ۷۴.۴ درصد وب سایت های جهان رو درگیر خودش کرده!

خب معرفی میکنم...

این شما... و اینم PHP!

اشتباه نکنید, منظورم همون زبان برنامه نویسی محبوبه هستش!

 

حالا بدون مقدمه میرم سراغ اصل مطلب...

 

۱- داستان چیه؟

دوستان, داستان از این قرار هستش که من دارم یه سایتی رو برای گروهمون میسازم (که بعضی از دوستان میدونن چه گروهی رو میگم), این گروهمون به زبان PHP خام هستش (یعنی بدون فریم ورک)

حالا بعد از چندین مدت, وارد سایتم شدم

اولش دیدم عه, داره به روت سایت, ارور میده و میگه که مموری پر شده!

پشمام ریخته بود!‌ ۲۵۶ مگابایت رم پر شده بود؟؟ یه سایت ساده! غیرممکن بود

زیادش کردم... ولی دیدم هنوز نوشته ۲۵۶ مگابایت!

بعد تازه متوجه شدم که داستان چیه =))

چون سایت ما از PHP-FPM استفاده میکرده و توی لینوکس (دبیان) PHP-FPM کانفیگش فرق داره با PHP خالی (البته که شایان ذکر هستش نه فقط در لینوکس, در تمام سیستم عامل ها)

و من, PHP-CLI رو در اصل تغییر داده بودم کانفیگش رو

خلاصه که بعد رفتم توی مسیر /etc/php/8.4/fpm/pool.d و... کانفیگ رو عوض کردم و هزار تا داستان دیگه و مموری رو زیاد کردم

کردم ۱ گیگابایت!

چی شد؟؟؟ ۱ گیگابایت درجا پر شد!!!!

میدونید یعنی چی؟؟ ۱ گیگابایت!!!

پروژه ی من داشت یه ویروس تحت وبی خیبی قدرتمند میشد!!!

یه وب سایت خیلی ساده با تم فضایی و انیمیشن های نسبتا سنگین (شهاب سنگ با SVG PATH و انیمیشن با سی اس اس, ستاره های سه حالته (نزدیک (شفاف), متوسط (کمتر شفاف), دور (یه نقطه ی خالی)) و...)

خلاصه که این رو که دیدم قلبم ریخت, بعد حالا اومدم مسیر فایل رو تغییر دادم و فرستادمش توی یه پوشه ی دیگه به دلایلی...

صبح که رفتم, با ارور ۵۰۰ مواجه شدم... (البته اینم شایان ذکر هستش که از لایت اسپید استفاده میکردم قبلا اما الان بک دادم به Nginx به دلایل ناسازگاری کانفیگ)

آقا هی برو, هی بیا و...

متوجه این شدم که location @front که توی ۲۶ تا از موقعیت ها.... چیز ببخشید, یعنی توی همه جا ازش استفاده کردم وجود نداره

اومدم تعریفش کردم و اینا و کلی دردسر

ارور ۵۰۰ فیکس شد شد ۵۰۲ (بد گیت وی)

بعد منو میگی؟ کارت میزدی خونم در نمیومد! یه شبانه روز دیباگ کن, یه ارور دیگه

خلاصه که نتیجه ی تا ۴ صبح بیدار موندن هام شدش اینکه ارور ۵۰۲ رفع شد

داستان چی بود؟

به جای اینکه لاگ های error.log عه www.webname.com (ویرچوال هاست استفاده میکنم واسه همین...) چک نکرده بودم و گفتم خب دیگه باو من که یه پا دیباگرم

بعد بررسی کردم با tail -f دیدم چه ارور مسخره و مذخرفی بود

نگو به جای اینکه درخواست ها رو به PHP-FPM Port (127.0.0.1:9000) بفرستم, داشتم به سوکت یونیکسیش میفرستادم!

یعنی دیگه از طبقه ی ۵ام میخواستم خودمو پرت کنم پایین از دست این کارا!  =))

خلاصه که ۵۰۲ رفع شد دوباره به مموری برخوردم

آقا هی میگفت توی Controller.php (من از Laravel, Symfony و... و معماری MVC استفاده نمیکنم, چون از PHP خام و معماری خاص خودم استفاده میکنم در اصل) خط ۲۲ سعی کردی ۱۶ مگابایت بیشتر به حافظه بدی (سریع میگم: سه تا کلاس توی کانستراکتور کلاس Controller بودن, یکیشون Validator, یکیشون Mailer, و دیگری Logger), اولش فکر کردم مشکل از Logger هستش, چون لاگر داخل خط ۲۲ بود

ولی نه, جای میلر (خط ۲۳) رو با لاگر (خط ۲۲) عوض کردم دیدم داره به میلر هم گیر میده!

آقا تا فردا صبحش خوابیدیم بعد بیدار شدیم به امید اینکه کد ها دیباگ شده باشن!

دیدیم نه باو رویای شیرینی بود ولی

خلاصه اومدیم یه نگاه انداختیم به کد ها

متوجه شدم ارور به قبل از خط ۲۲ (خط ۲۱ که Validator بود) مربوطه بعد از کلی تفکر و زولیدن به این سه تا خط افسانه ای! (۲۱, ۲۲ و ۲۳)

خلاصه که فایل Validator.php رو هم باز کردیم و نگاه انداختیم بهش و زولیدیم به کد ها...

آقا منو میگی؟ بال درآوردم!

متوجه چی شدم؟

دوران وابستگی ها! (Circular Dependency)

بعد از ۳-۴ روز دیباگ, بالاخره متوجه شدم که دوران وابستگی ها بین Validator و Controller به وجود اومده

Validator توی خودش داره Controller رو صدا میزنه و new میکنه, و Controller هم داره Validator رو صدا میزنه و new میکنه

همین باعث شد توی یه حلقه ی بینهایت قرار بگیرن حتی ۱ گیگابایت مموری هم سر خم کنه جلوی این ویروس عظیم!

با یه حرکت ساده, PHP رو ماتش کردم!

توی Validator نوشتم:
 

<?php

private $controller;
function __construct(Controller $controller)
{
    $this->controller = $controller;
}

و توی Controller تنها کاری که کردم این بود:

<?php

private $validator;
function __construct()
{
  $this->validator = new Validator($this);
}

همین کد افسانه ای که جا افتاده بود, باعث شد ۱ گیگابایت در عرض چند ثانیه درجا پر بشه!

 

خب, خلاصه ی موضوع ماهم همین بود

امیدوارم که براتون جالب بوده باشه, شب و روز بر همتون خوش! خدانگهدار!

 

 

 

 

 

جالب بود 

ایولا

✞✯•╗═══✞•|༻✯༺|•✞═══╔•✯✞

ImYassIN.png

✞✯•╝═══✞•|༻✯༺|•✞═══╚•✯✞

Niggaa.png

nigthdragon.png

OuR.png

By the will of Nyx, let the world fall silent

bc2e-d54a24-25AG-SA-0062-1.jpg

هم اکنون، ImYassIN گفته است:

جالب بود 

ایولا

 

هم اکنون، AshkanX گفته است:

Nice

ممنونم

NO Thing to DO

:My Account

Faise.png

:My Brothers

Olden.png

Parshan.png

MohammadAli.png

Shibemarg.png

در ۱۴۰۴/۱۱/۱ در 01:09، Integer گفته است:

In the name of God

 

سلامممممممم خدمت تمامی دوستان عزیز

 

امیدوارم حالتون خوب و حال دلتون از خودتون بهتر باشه

 

واقعیتش اینه که میخوام خطرناک ترین و جذاب ترین ویروس سروری رو بهتون معرفی کنم...

ویروسی که ۷۴.۴ درصد وب سایت های جهان رو درگیر خودش کرده!

خب معرفی میکنم...

این شما... و اینم PHP!

اشتباه نکنید, منظورم همون زبان برنامه نویسی محبوبه هستش!

 

حالا بدون مقدمه میرم سراغ اصل مطلب...

 

۱- داستان چیه؟

دوستان, داستان از این قرار هستش که من دارم یه سایتی رو برای گروهمون میسازم (که بعضی از دوستان میدونن چه گروهی رو میگم), این گروهمون به زبان PHP خام هستش (یعنی بدون فریم ورک)

حالا بعد از چندین مدت, وارد سایتم شدم

اولش دیدم عه, داره به روت سایت, ارور میده و میگه که مموری پر شده!

پشمام ریخته بود!‌ ۲۵۶ مگابایت رم پر شده بود؟؟ یه سایت ساده! غیرممکن بود

زیادش کردم... ولی دیدم هنوز نوشته ۲۵۶ مگابایت!

بعد تازه متوجه شدم که داستان چیه =))

چون سایت ما از PHP-FPM استفاده میکرده و توی لینوکس (دبیان) PHP-FPM کانفیگش فرق داره با PHP خالی (البته که شایان ذکر هستش نه فقط در لینوکس, در تمام سیستم عامل ها)

و من, PHP-CLI رو در اصل تغییر داده بودم کانفیگش رو

خلاصه که بعد رفتم توی مسیر /etc/php/8.4/fpm/pool.d و... کانفیگ رو عوض کردم و هزار تا داستان دیگه و مموری رو زیاد کردم

کردم ۱ گیگابایت!

چی شد؟؟؟ ۱ گیگابایت درجا پر شد!!!!

میدونید یعنی چی؟؟ ۱ گیگابایت!!!

پروژه ی من داشت یه ویروس تحت وبی خیبی قدرتمند میشد!!!

یه وب سایت خیلی ساده با تم فضایی و انیمیشن های نسبتا سنگین (شهاب سنگ با SVG PATH و انیمیشن با سی اس اس, ستاره های سه حالته (نزدیک (شفاف), متوسط (کمتر شفاف), دور (یه نقطه ی خالی)) و...)

خلاصه که این رو که دیدم قلبم ریخت, بعد حالا اومدم مسیر فایل رو تغییر دادم و فرستادمش توی یه پوشه ی دیگه به دلایلی...

صبح که رفتم, با ارور ۵۰۰ مواجه شدم... (البته اینم شایان ذکر هستش که از لایت اسپید استفاده میکردم قبلا اما الان بک دادم به Nginx به دلایل ناسازگاری کانفیگ)

آقا هی برو, هی بیا و...

متوجه این شدم که location @front که توی ۲۶ تا از موقعیت ها.... چیز ببخشید, یعنی توی همه جا ازش استفاده کردم وجود نداره

اومدم تعریفش کردم و اینا و کلی دردسر

ارور ۵۰۰ فیکس شد شد ۵۰۲ (بد گیت وی)

بعد منو میگی؟ کارت میزدی خونم در نمیومد! یه شبانه روز دیباگ کن, یه ارور دیگه

خلاصه که نتیجه ی تا ۴ صبح بیدار موندن هام شدش اینکه ارور ۵۰۲ رفع شد

داستان چی بود؟

به جای اینکه لاگ های error.log عه www.webname.com (ویرچوال هاست استفاده میکنم واسه همین...) چک نکرده بودم و گفتم خب دیگه باو من که یه پا دیباگرم

بعد بررسی کردم با tail -f دیدم چه ارور مسخره و مذخرفی بود

نگو به جای اینکه درخواست ها رو به PHP-FPM Port (127.0.0.1:9000) بفرستم, داشتم به سوکت یونیکسیش میفرستادم!

یعنی دیگه از طبقه ی ۵ام میخواستم خودمو پرت کنم پایین از دست این کارا!  =))

خلاصه که ۵۰۲ رفع شد دوباره به مموری برخوردم

آقا هی میگفت توی Controller.php (من از Laravel, Symfony و... و معماری MVC استفاده نمیکنم, چون از PHP خام و معماری خاص خودم استفاده میکنم در اصل) خط ۲۲ سعی کردی ۱۶ مگابایت بیشتر به حافظه بدی (سریع میگم: سه تا کلاس توی کانستراکتور کلاس Controller بودن, یکیشون Validator, یکیشون Mailer, و دیگری Logger), اولش فکر کردم مشکل از Logger هستش, چون لاگر داخل خط ۲۲ بود

ولی نه, جای میلر (خط ۲۳) رو با لاگر (خط ۲۲) عوض کردم دیدم داره به میلر هم گیر میده!

آقا تا فردا صبحش خوابیدیم بعد بیدار شدیم به امید اینکه کد ها دیباگ شده باشن!

دیدیم نه باو رویای شیرینی بود ولی

خلاصه اومدیم یه نگاه انداختیم به کد ها

متوجه شدم ارور به قبل از خط ۲۲ (خط ۲۱ که Validator بود) مربوطه بعد از کلی تفکر و زولیدن به این سه تا خط افسانه ای! (۲۱, ۲۲ و ۲۳)

خلاصه که فایل Validator.php رو هم باز کردیم و نگاه انداختیم بهش و زولیدیم به کد ها...

آقا منو میگی؟ بال درآوردم!

متوجه چی شدم؟

دوران وابستگی ها! (Circular Dependency)

بعد از ۳-۴ روز دیباگ, بالاخره متوجه شدم که دوران وابستگی ها بین Validator و Controller به وجود اومده

Validator توی خودش داره Controller رو صدا میزنه و new میکنه, و Controller هم داره Validator رو صدا میزنه و new میکنه

همین باعث شد توی یه حلقه ی بینهایت قرار بگیرن حتی ۱ گیگابایت مموری هم سر خم کنه جلوی این ویروس عظیم!

با یه حرکت ساده, PHP رو ماتش کردم!

توی Validator نوشتم:
 

<?php

private $controller;
function __construct(Controller $controller)
{
    $this->controller = $controller;
}

و توی Controller تنها کاری که کردم این بود:

<?php

private $validator;
function __construct()
{
  $this->validator = new Validator($this);
}

همین کد افسانه ای که جا افتاده بود, باعث شد ۱ گیگابایت در عرض چند ثانیه درجا پر بشه!

 

خب, خلاصه ی موضوع ماهم همین بود

امیدوارم که براتون جالب بوده باشه, شب و روز بر همتون خوش! خدانگهدار!

 

 

 

 

 

چقدر طول کشید تا تایپ کنی؟

‌کسی که میخواهد مثل خورشید

بدرخشد اول باید مثل خورشید بسوزد.

 

                                                      آدولف هیتلر     

 

هم اکنون، LorMaN گفته است:

چقدر طول کشید تا تایپ کنی؟

زمان واسه من معنی نداره که داشی :)

NO Thing to DO

:My Account

Faise.png

:My Brothers

Olden.png

Parshan.png

MohammadAli.png

Shibemarg.png

در ۱۴۰۴/۱۰/۳۰ در 13:39، Integer گفته است:

PH

فقط این تیکه رو متوجه شدم

اَللهْ

Cardni.png

 

TheNorthFace.png

 

 

 

13 دقیقه قبل، Behrad گفته است:

فقط این تیکه رو متوجه شدم

کاغذ PH منظورته دیگه؟ LOL

  • هاها 1

NO Thing to DO

:My Account

Faise.png

:My Brothers

Olden.png

Parshan.png

MohammadAli.png

Shibemarg.png

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است!

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری
  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی، در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...