MOAT GitHub repository va organization’larni security audit qiladi.
Tekshiradi:
• Dependabot
• Secret scanning
• Branch protection
• GitHub Actions security
• Supply-chain risklar
GitHub:
https://github.com/laravel/moat
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - laravel/moat: Moat reviews the security posture of your GitHub organization and repositories, then surfaces recommendations…
Moat reviews the security posture of your GitHub organization and repositories, then surfaces recommendations to consider. - laravel/moat
🔥5🤯1 1
Yangi update ichida:
Test qilish:
composer self-update --preview
Link:
https://blog.packagist.com/composer-2-10-release/
#composer #news
Please open Telegram to view this post
VIEW IN TELEGRAM
Private Packagist
Composer 2.10 Release
We are excited to announce the release of Composer 2.10.0, introducing native malware filtering and consolidated future-proof customizable dependency policy configuration to control the handling of security advisories, abandoned packages, and now malware.…
🔥4
PHP xotirani avtomatik boshqaradi, lekin long-running processlarda (Queue, Command, Import) katta obyektlar xotirada keragidan ortiq qolishi mumkin.
Bunday holatda
unset() yordamida xotirani ertaroq bo‘shatish mumkin.unset() oddiy Controllerlarda deyarli kerak emas, lekin katta datasetlar bilan ishlaganda foydali bo‘ladi#tip #laravel #php
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
📢 Microsoft va Zero-Day mojarosi
Security researcher Microsoft'ga bir nechta kritik Windows zaifliklarini topib berganini aytmoqda.
Uning da’vosiga ko‘ra:
• Bug bounty(mukofot) berilmagan
• Microsoft account'i yopilgan
• GitHub account'i bloklangan
Shundan so‘ng u ketma-ket Windows uchun bir nechta zero-day-larni public qilgan.
Eng xavotirli tomoni — ulardan ayrimlari real hujumlarda ishlatilgani haqida xabarlar mavjud.
Microsoft esa bu tarzdagi oshkor qilish foydalanuvchilarga xavf tug‘dirishini va yuridik choralar ko‘rilishi mumkinligini bildirgan.
💬 Bu voqea cybersecurity hamjamiyatida katta bahsga sabab bo‘lmoqda.
Bir tomonda — researcher'larning haq-huquqlari.
Ikkinchi tomonda — millionlab Windows foydalanuvchilarining xavfsizligi.
#news #cybersecurity
Security researcher Microsoft'ga bir nechta kritik Windows zaifliklarini topib berganini aytmoqda.
Uning da’vosiga ko‘ra:
• Bug bounty(mukofot) berilmagan
• Microsoft account'i yopilgan
• GitHub account'i bloklangan
Shundan so‘ng u ketma-ket Windows uchun bir nechta zero-day-larni public qilgan.
Eng xavotirli tomoni — ulardan ayrimlari real hujumlarda ishlatilgani haqida xabarlar mavjud.
Microsoft esa bu tarzdagi oshkor qilish foydalanuvchilarga xavf tug‘dirishini va yuridik choralar ko‘rilishi mumkinligini bildirgan.
Bir tomonda — researcher'larning haq-huquqlari.
Ikkinchi tomonda — millionlab Windows foydalanuvchilarining xavfsizligi.
#news #cybersecurity
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Bugun Dushanba va 1-chi sana nimadur boshlashni ayni vaqti ekan : )
😁6
Laravel loyihalarda Redis bilan ishlashda asosan 2 ta variant bor:
C tilida yozilgan PHP extension
Juda tez ishlaydi
Kamroq RAM ishlatadi
Production uchun tavsiya etiladi
Redis'ning yangi imkoniyatlarini tezroq qo‘llab-quvvatlaydi
Toza PHP kutubxonasi
O‘rnatish oson (
composer require predis/predis)Serverga extension o‘rnatish shart emas
Development va shared hosting uchun qulay
phpredis deyarli barcha holatlarda predis'dan tezroq va kamroq resurs sarflaydi.
Production server → phpredis
Shared hosting yoki extension o‘rnatib bo‘lmaydigan muhit → predis
Laravel loyihalarda imkon bo‘lsa phpredis ishlatishni tavsiya qilaman.
#php #laravel #redis #production
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥6
📦 Laravel 13.13 da yangi imkoniyat —
Endi minglab joblarni queue'ga yuborishda
✅ Katta hajmdagi email, SMS, import va report joblari uchun foydali.
📖 Batafsil:
https://laravel.com/docs/13.x/queues#bulk-dispatching
#Laravel #PHP #Queue
Bus::bulk()Endi minglab joblarni queue'ga yuborishda
dispatch() ni qayta-qayta chaqirish shart emas.Bus::bulk(
$users->map(fn ($user) => new ProcessUser($user))
);
Bus::bulk() joblarni queue va connection bo‘yicha guruhlab, bir martada yuboradi. Natijada kamroq so‘rov va tezroq dispatch.https://laravel.com/docs/13.x/queues#bulk-dispatching
#Laravel #PHP #Queue
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
Вентилятор Tarixi 😄
Men Вентилятор oldim va xonamga qoydim va uni uzoqroqga qoydim va uni ochirib yoqish juda azobli edi men borib ventilyatorni ochirib keyin joyimga otirishim kerak edi bu juda og'ir ish va men oyladim shuni avtomatlashtirsamchi deb va izlanib aqilliy r = розетка topdim va sotib oldim uning ilovasi bor ekan ochirib yoqasiz timerlari bor scheduler bor ekan juda qulay lekin telefonda qilish kerak ekan yana minus men yana komp da mazza qilib otirganimda telefonimni blokdan chiqarib wifi yoqib ilovaga kirib switch ni o'chirishim kerak edi bu juda azob edi men nima qildim osha qurilmani API si bor ekan oshani izlab topib ozimni telegram botimga ulab qoydim va endi bemalol kompyuterimdan o'chirib yoqa olaman xayot ancha yengillashdi ana endiqiz topsam boldi 😁
r = розетка qilganim r o'zgaruvchini qayerdadur ishlataman deb aqilliylik qilmoqchi edim ishlatmadim baribir 😄
Men Вентилятор oldim va xonamga qoydim va uni uzoqroqga qoydim va uni ochirib yoqish juda azobli edi men borib ventilyatorni ochirib keyin joyimga otirishim kerak edi bu juda og'ir ish va men oyladim shuni avtomatlashtirsamchi deb va izlanib aqilliy r = розетка topdim va sotib oldim uning ilovasi bor ekan ochirib yoqasiz timerlari bor scheduler bor ekan juda qulay lekin telefonda qilish kerak ekan yana minus men yana komp da mazza qilib otirganimda telefonimni blokdan chiqarib wifi yoqib ilovaga kirib switch ni o'chirishim kerak edi bu juda azob edi men nima qildim osha qurilmani API si bor ekan oshani izlab topib ozimni telegram botimga ulab qoydim va endi bemalol kompyuterimdan o'chirib yoqa olaman xayot ancha yengillashdi ana endi
r = розетка qilganim r o'zgaruvchini qayerdadur ishlataman deb aqilliylik qilmoqchi edim ishlatmadim baribir 😄
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍1👏1
Quyidagi kodni ko'rganmisiz?
DB::transaction(function () use ($userData) {
$user = User::create($userData);
SendWelcomeEmailJob::dispatch($user);
});Hammasi to'g'ridek ko'rinadi.
Lekin queue worker juda tez ishlasa, job transaction commit bo'lishidan oldin ishga tushishi mumkin.
Natijada:
User::find($id);
null qaytaradi Chunki ma'lumot hali database'ga yozilib ulgurmagan bo'ladi.
DB::transaction(function () use ($userData) {
$user = User::create($userData);
SendWelcomeEmailJob::dispatch($user)
->afterCommit();
});Endi job faqat transaction muvaffaqiyatli yakunlangandan keyin queue'ga yuboriladi.
• Email yuborishda
• Notification jo'natishda
• Webhook dispatch qilishda
• Event publish qilishda
• Boshqa service'larga xabar yuborishda
Qisqasi, job database'dagi yangi ma'lumotga tayanadigan bo'lsa,
afterCommit() ishlatishni unutmang.Laravel'dagi eng underrated metodlardan biri
#laravel #tip #queue
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Tasavvur qiling, account'da 100 000 so'm bor.
Ikki xil request bir vaqtda keladi:
1-request:
- Balansni o'qidi: 100 000
2-request:
- Balansni o'qidi: 100 000
1-request:
- 80 000 yechdi
- Balans: 20 000
2-request:
- 80 000 yechdi
- Balans: 20 000
Natija:
Xar ikki request parallel ishladi va ikkisi xam balansni 100 000 deb oqidi
Foydalanuvchi 160 000 so'm ishlatdi,
lekin hisobida atigi 100 000 so'm bor edi
Mana shu Race Condition.
Ko'pchilik transaction ishlatdim, demak xavfsiz deb o'ylaydi.
Lekin transaction har doim ham Race Condition'dan himoya qilmaydi.
Laravel'dagi yechimlardan biri:
DB::transaction(function () use ($walletId) {
$wallet = Wallet::where('id', $walletId)
->lockForUpdate()
->first();
// balans bilan ishlash
});lockForUpdate() satrni lock qiladi va boshqa transaction'larni kutishga majbur qiladi.Shu sababli moliyaviy tizimlar, bonuslar, ombor va to'lov sistemalarida
lockForUpdate() juda muhim.#laravel #tip #race_condition
Please open Telegram to view this post
VIEW IN TELEGRAM
Qarmoq,baliq va men
Men ora-orada saytlarga hujumcha qilib turaman va ko‘pchilik e’tiboriga olmaydigan narsa bor —🫢 Aslida, loyihada iloji bo‘lsa, bo‘lmaydi deganda bitta global rate limit qo‘yib qo‘yish kerak barcha routelar uchun. Muhim routelar uchun esa alohida qilib qo‘yish kerak, masalan, register uchun OTP ketadigan bo‘lsa va hokazo.
Agar rate limiting yo‘qligini bilib qolsam qaysidur saytda, joyida Open Code Editor -> app.js -> parallel 10 ta request va kamida 10 ta process bilan, va cooked.😬
Va ikki tomonlama(back + front) validatsiya ham juda muhim narsa.
Bugun shunchaki domain izladim. Menga yoqqan domain band ekan, qiziqib kirib register qildim. Portfolio joylasa bo‘lar ekan va portfolio uchun rasm yuklasa bo‘lar ekan.😁
Loyiha toza PHP’da ekan va portfolio qo‘yganda rasm yukladim. Rasmni tanlashingiz bilan serverga ketar ekan, alohida endpointga, va yuklanadi ekan. Men qiziqdim, max nechi MB ekan deb.
UI’da cheklov qo‘yibdilar. Men Postman bilan qildim: headerdan cookie’ni oldim, CSRF tokenni formadan oldim va 142 ta 4.32 MB’lik rasm yukladim. Validatsiya yo‘q ekan.😬
142 × 4.32 = 613.44 MB va men bu uchun shunchaki script yozib, avtomat 10–15 marta yoki undan ko‘proq qilsam, serverning xotirasini to‘ldirib qo‘yishim mumkin edi. Bu serverning qotishiga va o'chib qolishiga ham sabab bo‘lishi mumkin.
#security
Men ora-orada saytlarga hujumcha qilib turaman va ko‘pchilik e’tiboriga olmaydigan narsa bor —
rate limiting.Registerda yoki boshqa endpointlarga qo‘yishmaydi. Agar rate limiting yo‘qligini bilib qolsam qaysidur saytda, joyida Open Code Editor -> app.js -> parallel 10 ta request va kamida 10 ta process bilan, va cooked.
Va ikki tomonlama(back + front) validatsiya ham juda muhim narsa.
Bugun shunchaki domain izladim. Menga yoqqan domain band ekan, qiziqib kirib register qildim. Portfolio joylasa bo‘lar ekan va portfolio uchun rasm yuklasa bo‘lar ekan.
Loyiha toza PHP’da ekan va portfolio qo‘yganda rasm yukladim. Rasmni tanlashingiz bilan serverga ketar ekan, alohida endpointga, va yuklanadi ekan. Men qiziqdim, max nechi MB ekan deb.
UI’da cheklov qo‘yibdilar. Men Postman bilan qildim: headerdan cookie’ni oldim, CSRF tokenni formadan oldim va 142 ta 4.32 MB’lik rasm yukladim. Validatsiya yo‘q ekan.
142 × 4.32 = 613.44 MB va men bu uchun shunchaki script yozib, avtomat 10–15 marta yoki undan ko‘proq qilsam, serverning xotirasini to‘ldirib qo‘yishim mumkin edi. Bu serverning qotishiga va o'chib qolishiga ham sabab bo‘lishi mumkin.
#security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
php artisan dev command qo'shildi.Endi development uchun:
php artisan dev
bitta buyruq bilan:
• Laravel server
• Queue worker
• Pail log viewer
• Vite
parallel ishga tushadi.
Bundan tashqari o'zingizning commandlaringizni ham qo'sha olasiz (
reverb:start, stripe listen va hokazo).Batafsil pull request
#laravel #php #news
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Add `artisan dev` command by joetannenbaum · Pull Request #60412 · laravel/framework
Adds a new php artisan dev command that runs your development processes (server, queue worker, log tailing, Vite) concurrently using concurrently. The default behavior is effectively the same as th...
🔥4
Tassavur qililar click productionda ishlamayabti
502 bad gateway va hodimlariga aytsam qachondan beri ishlamayabti deb mendan sorab turibti men aytgandan keyin 502 gatewaydan Database connection failed ga o'tdi 😅 Qayerga qarayabsilar😁9
Yana bir jabrlanuvchi turk sayti 😄
Men YouTube’da bir turk dasturchi qizni ko‘rib qoldim. U Python’dan bir nechta darsliklar qo‘ygan ekan va oxirgi videosida mening sevimli akamning yaratgan o‘yini deb saytni reklama qildi.
O‘yinni tushunganim yo‘q, tushunarsiz qandaydir sayt ekan, lekin userlar active, zo‘r. Men register qilmoqchi bo‘ldim, OTP ketar ekan. Yaxshi, soxta email bilan kirolmadim va urinishlarni ko‘paytirgan edim, 60 daqiqaga IP addressni blokladi.
Hmmm, yaxshi, lekin minusi bor ekan. Google akkaunt bilan kirdim va profile rasm yuklash joyi bor ekan. Birinchi yuklagan rasmimning path’ini olib qo‘ydim, uni o‘chirarmikan deb.
Keyin rasmda ko‘rishlaring mumkin, 5 ta process ketmoqda. Har biri 1000 marotabadan yuklaydi. Rasm esa 1.5 MB’lik rasm (validatsiya bor ekan, max limit 2 MB). Bu degani 1.5 GB bo‘ladi har bir process.
Men buni kamida 10 marotaba qilib ko‘rdim, ya’ni 10 ming request, 15 GB data. 😄 Va kun bo‘yi qilib o‘tirishim mumkin.
Qisqasi, bu turk sayti ham pishadi. Bitta bizda emas ekan bunday muammolar. Boshida olib qo‘ygan path’imdagi rasm o'chib ketmabdi, bu degani tozalamayapti. Yangi rasm yuklaganda eskisini o‘chirmas ekan. 😄
Men YouTube’da bir turk dasturchi qizni ko‘rib qoldim. U Python’dan bir nechta darsliklar qo‘ygan ekan va oxirgi videosida mening sevimli akamning yaratgan o‘yini deb saytni reklama qildi.
O‘yinni tushunganim yo‘q, tushunarsiz qandaydir sayt ekan, lekin userlar active, zo‘r. Men register qilmoqchi bo‘ldim, OTP ketar ekan. Yaxshi, soxta email bilan kirolmadim va urinishlarni ko‘paytirgan edim, 60 daqiqaga IP addressni blokladi.
Hmmm, yaxshi, lekin minusi bor ekan. Google akkaunt bilan kirdim va profile rasm yuklash joyi bor ekan. Birinchi yuklagan rasmimning path’ini olib qo‘ydim, uni o‘chirarmikan deb.
Keyin rasmda ko‘rishlaring mumkin, 5 ta process ketmoqda. Har biri 1000 marotabadan yuklaydi. Rasm esa 1.5 MB’lik rasm (validatsiya bor ekan, max limit 2 MB). Bu degani 1.5 GB bo‘ladi har bir process.
Men buni kamida 10 marotaba qilib ko‘rdim, ya’ni 10 ming request, 15 GB data. 😄 Va kun bo‘yi qilib o‘tirishim mumkin.
Qisqasi, bu turk sayti ham pishadi. Bitta bizda emas ekan bunday muammolar. Boshida olib qo‘ygan path’imdagi rasm o'chib ketmabdi, bu degani tozalamayapti. Yangi rasm yuklaganda eskisini o‘chirmas ekan. 😄
😁5 1