Golden Code – Telegram
Golden Code
737 subscribers
53 photos
248 links
نکات laravel, php و...
Download Telegram
در لاراول برای استفاده از Service Container و ثبت یک سرویس با نام مستعار (alias)کدوم گزینه رو باید استفاده کرد؟
Anonymous Quiz
33%
app()->bind('aliasName', function() { return new ServiceClass(); });
15%
app()->singleton('aliasName', ServiceClass::class);
28%
app()->bind(ServiceClass::class, 'aliasName');
24%
app()->alias('ServiceClass', 'aliasName');
3🔥2
در لاراول میتونیم با استفاده از دستور php artisan db خیلی ساده و سریع به دیتابیس از طریق CLI متصل شیم و میتونیم از طریق CLI با دیتابیس در تعامل باشیم تا عملیات های مدنظرمونو انجام بدیم.

اگه چندتا دیتابیس باشه چی؟؟
اینجوری باید دیتابیس مدنظر مشخص بشه:

php artisan db mysql

#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1831784043488403463?t=ygcQomWuuX0wo0KwCJud1w&s=19
👍5
Forwarded from CleverDevs (Mammad)
کامند های artisan توی لاراول 11

#php #laravel
@CleverDevs - @CleverDevsGp
👍85🔥2
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 برگه تقلب کامل MySQL

@TheRaymondDev
🔥4👍1
نکات طراحی pop-up های delete :
۱- از باتن های مشخص برای حذف یا تایید استفاده کنیم تا کاربر راحت تر بفهمه چیکار میکنه.

۲- از رنگ‌هایی مانند قرمز برای باتن حذف استفاده کنیم تا توجه کاربر جلب بشه.

۳-باتن ها رو در مکان‌های قابل دسترس قرار بدیم تا کاربر راحت بتونه تصمیم بگیره.
(در تصویر به نمونه‌های ایده‌آل و اشتباه اشاره شده)
#UI
@GoldenCodeir
(به منبع و مثالش توجه کنین 👇🏾)
https://x.com/uxpeak_/status/1718579351644410367?s=19
👍4
Forwarded from CleverDevs (Mammad)
-اصل Vertical Openness Between Concepts در کلین کد

کاملا ساده و مختصر این اصل میگه که بین بخش های مختلف کدتون یکی دو خط فضای خالی بزارید فاصله بیوفته بینشون مثلا کد زیر رو ببنید

import CleverDevs from telegram
function helloWorld(){
console.log("hello world");
}
function sendStarRaction(){
console.log('send star reaction on CleverDevs Posts');
}

تو کد بالا بین بخش های مختلف کد فاصله ای نذاشتیم حالا اگه کدمون بیشتر و پیچیده تر بشه خوندنش خیلی سخت تر میشه حالا اگه بیایم و مثل کد پایین یه خط خالی بین هر بخشی از کد بزاریم خوندنش به مراتب راحت تر میشه

import CleverDevs from telegram

function helloWorld(){
console.log("hello world");
}

function sendStarRaction(){
console.log('send star reaction on CleverDevs Posts');
}


حالا چون تو این پست نمیشد مثال بزرگتری زد اونقدرا تفاوتشون معلوم نمیشه ولی تو کدبیس های بزرگتر رعایت همین یه موضوع تفاوت چشمگیری ایجاد میکنه

#CleanCode
@CleverDevs - @CleverDevsGp
👍83
لاراول با Artisan به ما امکان این رو داده تا وضعیت دیتابیس رو در ترمینال به خوبی بتونیم بررسی کنیم.

حالا یه سری کامند رو مرور کنیم:
Php artisan db:table 

(میاد ی آمار جامع و عالی از دیتابیس میده)
Php artisan db:monitor

(بررسی تعداد کانکشن های دیتابیس(خیلی خفنه و آپشنای ديگه هم داره)
Php artisan db:show

(یه نمای کلی از db و تعداد کانکشن های فعال و نوع دیتابیس...)
@GoldenCodeir
( منبع و مثالش)
https://x.com/OussamaMater/status/1833235842321756608?t=zoRINh3pYLRRThSPXX5cXw&s=19

علاوه بر منبع، اینم یه مقاله جامع:👇🏾
https://magecomp.com/blog/laravel-9-new-database-commands/
👍8🔥1
Forwarded from CleverDevs (Mammad)
-اصل Do One Thing در کلین کد

این اصل میگه هر تابعی باید فقط یه کار انجام بده و اگه نیاز به دوتا کار شد باید دوتا فانکشن بکنیش


FUNCTIONS SHOULD DO ONE THING. THEY SHOULD DO IT WELL THEY SHOULD DO IT ONLY.


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


#CleanCode
@CleverDevs - @CleverDevsGp
6👍3🔥1
در لاراول orderByRaw بهتون این امکان رو میده که نتایج رو بتونید بر اساس یه سری محاسبات خاصی مرتب کنید.

مثلا ؟
میتونیم نتایج رو بر اساس اختلاف بین دو ستون ( قیمت و تخفیف) مرتب کنیم!
این آپشن یه سری جاها کدارو واقعا بهینه میکنه.
#laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/laravelbackpack/status/1836004683594469864?t=IGgicccC4LllTLBm0hRviw&s=19
👍43
Forwarded from Web Application Security
یه آسیب پذیری ظاهرا بی ارزش =

کد زیر رو در نظر بگیرین:
<?php
session_start();
if($_SESSION['is_admin'] != true)
{
header("Location: /home.php");
}
// Application code is here
?>

سناریو اینه که این فایل مربوط به یکی از فایل های پنل ادمینه که طبیعتا باید فقط ادمین دسترسی داشته باشه، از داخل sessionی که برای هر کاربر ست کرده چک میکنه ببینه اگه سطح دسترسی ای که به این کاربر داده ادمین نبود redirect کنه به صفحه home.
مشکلی که تو این کد هست اینه که درسته redirect میکنه ولی جلوی اجرا شدن کد رو نمیگیره بعد redirect و باعث میشه مابقی کد هم اجرا بشن بعد redirect. ولی چه تهدیدی داره؟
1⃣ افشا شدن response بعد از redirect :
اگه با دستور زیر به اون مسیر curl بزنیم میتونیم کل ریسپانس رو ببینیم:
curl https://target.com/admin_panel.php

نکته : ما فقط میتونیم response رو ببینیم نه سورس کد اپلیکیشن. ممکنه برنامه نویس از توابعی استفاده کرده باشه که اطلاعات مهمی رو روی صفحه چاپ کنه مثل echo. برای درک بهتر کد زیر رو در نظر بگیرید :
<?php
if($_SESSION['is_admin'] != true)
{
hedaer("Location : /home.php");
}

echo "username : adm2ish";
echo "password : pa19ehw";
?>

2⃣ تست آسیب پذیری های مختلف!
کد زیر رو در نظر بگیرین:
<?php
session_start();
if($_SESSION['is_admin'] != true)
{
header("Location: /home.php");
}
if (isset($_GET['cmd']) && !empty($_GET['cmd'])) {
$admin_input = $_GET['cmd'];
echo system("ping $admin_input");
} else {
echo "No command provided.";
}
?>

آسیب پذیری ای که این کد داره Command Injectionهست. ولی نکته ای که مهمه اینه که این صفحه چون redirect میکنه خیلیا اینجا parameter fuzz انجام نمیدن و آسیب پذیری های این صفحه فقط با دسترسی ادمین قابل دیدن و تست کردنه، ولی بخاطر اشتباه برنامه نویس مهاجم میتونه parameter fuzz انجام بده و آسیب پذیری های مختلفی رو تست کنه که بسته به logic برنامه ممکنه آسیب پذیری های مختلفی رو داشته باشه. اگه باگ هانترین حتما به این نکته توجه داشته باشین موقع مواجه شدن با redirect ها.
نمونه پیلود با curl برای تست آسیب پذیری :

curl "https://target.com/admin_panel.php?cmd=1.1.1.1|whoami"
curl "https://target.com/admin_panel.php?cmd=1.1.1.1||whoami||"
curl "https://target.com/admin_panel.php?cmd=1.1.1.1;whoami"

نکته مهم : کد های نوشته شده با php رو اگه تو سیستمتون اجرا کنین به درستی کار نمیکنن چون باید خودتون session کاربر رو ست کنین.

⁉️روش جلوگیری چیه؟

بعد redirect باید جلوی اجرا شدن ادامه کد رو بگیریم که میتونیم با توابع زیر انجام بدیم:
<?php
exit()
die()
?>

اسم آسیب پذیری :
Execution After Redirect = EAR

#EAR
#parameter_fuzz
👍14👏21👎1
Forwarded from Gopher Academy
🔰تعریف مهندسی معکوس

مهندسی معکوس یک فرایند حل مسئله است که به جای آنکه از سوال آغاز شود، از پاسخ موجود آغاز می‌شود.

🔵کاربرد اصلی مهندسی معکوس در یکی از دو مورد زیر است:

🔴وقتی جواب یک مسئله را می‌دانیم. اما نمی‌دانیم این جواب پاسخ به چه سوالی است.

🔴وقتی سوال و پاسخ را می‌دانیم. اما نمی‌دانیم مسیر و فرایند رسیدن به این پاسخ چه بوده است.


👑 @gopher_academy
👍51🔥1