-
تعداد ارسال ها
840 -
تاریخ عضویت
-
آخرین بازدید
-
روز های برد
1
نوع محتوا
نمایه ها
تالارهای گفتگو
ثبت نام ها
فروشگاه
وبلاگها
تقویم
تمامی مطالب نوشته شده توسط Integer
-
Raksamp (Rakdroid) رو میتونید نصب کنید، ولی خرید VPS از سایت های معتبر (تک وی پی اس و...) عالیه RSM فقط یه مینجره VPS نیست
-
ببینید نشدنی نیستش، به این کار میگن وب اسکرپینگ، با پایتون به شدت ساده میشه انجامش داد، ولی غیر قانونی هستش، و بعضی از سایت ها میان وب اسکرپینگ رو بن میکنن و ممکنه پیگرد قانونی داشته باشه
-
ای وای ببخشید دیگه بود بهت، آموزشای بعدی هم در راهن هنوز ولتون نکردم...
-
HTML و CSS چی هستند؟ چرا برای طراح وب شدن باید اون هارو یاد بگیریم؟
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
CSS = Counter Strike Source CSS = Cascading Style Sheets -
+ بلی
-
چی بگیم والله بعد ۴ سال کمه هنوز
-
ممنونم
-
ممنونم
-
به نام خداوند جان و خرد سلام عرض میکنم خدمت همه ی شما دوستان و هم وطنان عزیز امیدوارم حال یک یکتون خوب باشه امروز میخوایم ادویه جات های برنامه نویسا رو بررسی کنیم میخوایم ببینیم چقد برنامه نویسا از ادویه جات توی غذاشون (کداشون) استفاده میکنن (تمامی مباحث گفته شده مربوط به امنیت و صفحاتی همچون لاگین و رجیستر هستش) 1- نمک (Salt) چیست؟ در برنامه نویسی و امنیت و کلا کسایی که به این موضوع ها علاقه دارن، نمک یکی از ادویه های مفیدی هستش که به اندازه های مختلف و تصادفی (Random) توی غذا میریزن برنامه نویسا نمک یه متن تصادفی هستش که زمانی که کاربر میخوادش پسوردش رو وارد کنه (فقط وقتی که میخواد رجیستر کنه، توی PHP این اتفاق به صورت اتوماتیک میوفته)، و بعد متن هش میشه و در دیتابیس ذخیره میشه، اینکار امنیت رو از چند لحاظ بالا میبره: 1- یک متن رندوم تصادفی برای هر کاربر میسازه، یعنی اگه چندین کاربر پسوردشون ۱ ۲ ۳ ۴ باشه برای هر کدوم هش جداگانه ای ساخته میشه و اگه دیتابیس دسته هکر بیوفته نمیتونه کار زیادی انجام بده و خیلی طولانی میشه انجام کار ها، حداقل ۲۸ کاراکتر و حداکثر ۱۲۸ کاراکتر باید طول نمک باشه 2- فلفل (Pepper) چیست؟ توی برنامه نویسی به جز نمک یک مبحث دیگه ای داریم تحت عنوان "فلفل تند و آتشین"! قشنگ پدره هکر رو در میاره! طبق محاسبات محققان، اگه فلفل اضافه شه به پسورد عه کاربرا حتی با ابر کامپیوتر و ابر سیستم ها میلیارد ها سال نوری طول میکشه تا هکر بتونه پسورد رو به دست بیاره، (حتی اگه نمک رو نزارین)، اما خب این همه توضیح دادیم درست، فلفل تند و آتشین دقیقا چیه؟ فلفل دقیقا برخلاف نمک یک متن تصادفی نیستش، برای همه ی کاربر ها یکی هستش، اما!!! برخلاف نمک و بقیه مباحث، فلفل مستقیما توی دیتابیس ذخیره نمیشه، فلفل هم مانند نمک به پسورد اضافه میشه، هش میشه و سپس توی دیتابیس ذخیره میشه، طول فلفل از ۱۲۸ کاراکتر تا بینهایت کاراکتر هستش، اگه ۱۲۸ کاراکتر باشه میلیارد ها سال نوری عه، ببینید ۵۷۳۸۳۷ کاراکتر یا بیشتر باشه چی میشه... فلفل یک متنی هستش که توی فایل های حیاطی مثل .env ذخیره میشه و هروقت که کاربر بخواهید رجیستر & لاگین کنه اون به متن کاربر اضافه میشه، اما خب آقا اگه اضافه میشه به صورت سیستمی به چه دردی میخوره توی حملات آنلاین (بروت فورس، رینبو تیبل و...)، دقیقا مبحث فلفل برای بخش آفلاین هستش، نه آنلاین، زمانی که هکر دیتابیس رو بدست آورده باشه، فقط یک پسورد هش شده تحویل میگیره، این پسورد هش شده ترکیبی از پسورد کاربر و فلفل و حتی اگه خواستین نمک هستش، (البته نمک برای جلوگیری از رینبو تیبل (Rainbow Table) هستش بالا یه اشتباهی شد )، و حالا هکر بخواد متن هش شده رو با نرم افزار هایی مثل Hashcat, John The Ripper, و... آن هش کنه و متن اصلی رو بدست بیاره، اینجا فلفل خودشو نشون داده، هکر تا زمانی که متن عه اصلی عه فلفل که توی .env ذخیره شده رو نداشته باشه، ببخشینا هیچ نمیتونن نوش جان فرمایند ، ولی اگه داشته باشه، ببخشینا شما دیگه نمیتونی کاری انجام بدین ، واسه همینه که .env مهم ترین فایل عه همه ی پروژه ها هستش! ۱۰۰٪ مطمعنم هیچکدوم هیچی متوجه نشدین، بدیهی هستش، تا کد رو نبینین اینجور مباحث رو متوجه نمیشید، چون یه مبحثی نیستش که بگید آره مثلا دو تا کلمه میخونم تموم میشه میره، باید به صورت عملی ببینید که چی به چیه تا متوجه بشید: حالا دیگه حرف بسه، کدمون رو نشونتون میدیم! <?php // نمک Salt $password = "Password_Test"; // تابع یه password_hash در PHP میاد و به صورت اتوماتیک نمک رو اظافه میکنه اما خب من باز میگم دیگه $salt = openssl_pseudo_random_bytes(50); //یک قاشق نمک (۵۰ بایت نمک) $passwordWithSalt = $salt . $password; // روش های زیادی برای اطافه کردن نمک وجود داره به پسورد /* روش های اصولی: $salt . $password $password . $salt $salt . $password . $salt */ // اگر نمک رو به صورت دستی بنویسید باید به اندازه ی بایت هایی که برای نمک گذاشتید رو از جاهایی که گذاشتید (اول، اخر یا هردو) حذف کنید و بعد اعتبارسنجی کنید ببینید آیا هش شده ی پسورد عه الان عه کاربر با هش شده ی پسورد قبلیش یکیه یا نه، باید از یک الگوریتم استفاده کنید واسه هم اعتبارسنجی هم رجیستر // پیشنهاد میکنم از password_hash و password_verify توی پی اچ پی استفاده کنید که این کا ها رو (به جز فلفل که خودتون باید اظافه کنید رو) انجام میدن هم اعتبارسنجی هم ساخت نمک هم همه ی کار هایی که بالا گفتم رو // فلفل Pepper $password = "PasswordTEST"; $pepper = "PEPPER_TEXT_HELLO_HOWAREYOUHFNDJDBSHEJDUFH"; // مثال هستش، وگرنه یک متن معنا دار (یا هش شده) هستش که از .env خونده میشه $passwordWithSomePepper = $password . $pepper; // این در دیتابیس ذخیره میشه $passwordHash = password_hash($passwordWithSomePepper, "ARGON2ID"); // Authentication $password = "shsh"; // پسوردی که کاربر وارد کرده (در لاگین) $pepper = $pepper; // همون فلفل تندی که توی .env هستش $passwordWithPepper = $password . $pepper; // پسوردی که کاربر توی لاگین وارد کرده + پسوردی که توی دیتابیس هستش if(password_verify($passwordWithPepper, $passwordHash) { echo "هش ها یکسان هستن و کاربر پسوردش درسته"; } else { echo "هش ها یکسان نیستن پس پسورد اشتباهه"; } این تمام ماجرای فلفل و نمک هستش فقط کد هارو زیادی شور یا تند نکنینا شیطونا امیدوارم که خوشتون اومده باشه، تا تاپیک های بعدی شما رو به خداوند بزرگ میسپارم، خدا یار و نگهدارتون باشه!
- 6 پاسخ
-
- 2
-
-
An Open-Source Real-Time Messanger with C++ & Boost:Asio
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
ممنون -
شرکت های بزرگ از چه زبان برنامه نویسی استفاده میکنن؟
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
ممنون -
شرکت های بزرگ از چه زبان برنامه نویسی استفاده میکنن؟
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
خیلی ممنون -
شرکت های بزرگ از چه زبان برنامه نویسی استفاده میکنن؟
Integer پاسخی ارسال کرد برای یک موضوع در برنامه نویسی
بسمالله رحمان رحیم سلاممممممممممممممممممممممممممممممم عرض میکنم خدمت تمامی شما دوستان عزیز امیدوارم حالتون عالی باشه حال دلتون ااز حال خودتون بهتر توی این تاپیک میخوایم بررسی کنیم که شرکت های بزرگ (Microsoft - Google - LinkedIn - GitHub - GitLab - StackOverFlow - Git - CodePen - Dribbble - Telegram - Instagram - Twitter (X) - xAi - Tesla - SpaceX - NASA - Coursera - Qoura) بررسی کنیم که از چه زبان برنامه نویسی ای استفاده میکنن 1- Microsoft Applications: برای ویندوز و محصولات دسکتاپ ترکیب C++ (هستهها و رانتایمها) و C#/.NET (اپها و UI)، و TypeScript/Electron برای برخی ابزارهای کراسپلتفرم (مثل GitHub Desktop که متعلق به Microsoft است). موبایلهای iOS/Android معمولاً Swift/Objective‑C و Kotlin/Java وقتی محصول رسمی موبایل داشته باشه Microsoft ازش استفاده میکنه Front-End: عموماً JavaScript/TypeScript Back-End: ASP.NET/C# و در مواردی Node.js برای سرویسهای سبکتر CLI-Tools: PowerShell، C# (ابزارهای .NET)، و C++ برای ابزارهای قدیمی/سیستمی 2- Google Applications: Android با Java/Kotlin, iOS با Swift/Objective‑C, دسکتاپ معمولاً بومی با C++ یا کراسپلتفرم بسته به محصول, Flutter/Dart برای برخی محصولات کراسپلتفرم Front-End: عموماً JavaScript/TypeScript Back-End: ترکیبی از C/C++, Go, Java, Python, و در جاهایی Node.js, با ذخیرهسازیهای داخلی مثل Bigtable و MariaDB در برخی سرویسها CLI-Tools: ابزارهای داخلی و متنباز زیاد با Go و Python ساخته شدهاند (اکوسیستم Kubernetes/Docker هم گو-محور است, متن غالب) 3- LinkedIn Applications: موبایلها Swift/Objective‑C و Kotlin/Java؛,دسکتاپ اپهای محدود و بیشتر وب محور Front-End: عموماً JavaScript Back-End: Java و Scala ستون فقراتاند, زیرساختهای داده و سرویسهای درونسازمانی با JVM غالباند CLI-Tools: وجود ندارد 4- GitHub Applications: GitHub Desktop با Electron (JavaScript/TypeScript), برخی اجزای سیستمی با C++/Go Front-End: عموماً JavaScript/TypeScript Back-End: اصلی Ruby on Rails، با سرویسهای مکمل به Go و Python در بعضی دامنهها CLI-Tools: ابزار رسمی gh با Go نوشته شده است 5- GitLab Applications: وب محور Front-End: JavaScript (Vue.js) Back-End: Ruby on Rails؛ کامپوننتهای پرفورمنس مثل Gitaly با Go؛ زیرساختها بعضاً Go و Shell CLI-Tools: ابزارهای اکوسیستم و جامعه (مانند glab) با Go متداولاند 6- StackOverFlow Applications: وب محور Front-End: عموماً JavaScript Back-End: C#/ASP.NET با SQL Server, کل اکوسیستم بر پایهی .NET ساخته شده است CLI-Tools: وب محور 7- Dribbble Applications: وب محور Front-End: عموماً JavaScript Back-End: عمدتاً Ruby on Rails, سرویسهای جانبی ممکن است زبانهای دیگری داشته باشند CLI-Tools: وب محور 8- CodePen Applications: وب محور Front-End: JavaScript Back-End: Ruby on Rails؛ سرویس وبمحور CLI-Tools: وب محور 9- Telegram Applications: Android با Java/Kotlin, iOS با Swift/Objective‑C, Desktop با C++/Qt (Telegram Desktop) سرورها/پروتکل: تمرکز سنگین روی C++ (MTProto و سرورهای پرفورمنس بالا), برخی سرویسها با Go/Python در ابزارهای جانبی Front-End: عموماً JavaScript Back-End: سرویسهای اصلی به C++, و در لایههای سادهتر PHP/Node در برخی محصولات عمومی CLI-Tools: وجود ندارد 10- Instagram Applications: iOS با Swift/Objective‑C, Android با Kotlin/Java, در جاهایی React Native برای فیچرهای کراستیم Front-End: عموماً JavaScript/React Back-End: غالباً Python (Django) با کامپوننتهای C++ برای پرفورمنس, زیرساختهای ذخیرهسازی و کشسازی سفارشی, متا از اکوسیستم گستردهای بهره میگیرد CLI-Tools: وجود ندارد 11- Twitter Applications: iOS با Swift/Objective‑C, Android با Kotlin/Java Front-End: عموماً JavaScript Back-End: تاریخی Ruby on Rails, سپس سرویسهای هسته به Scala و Java مهاجرت داده شدند, امروزه ترکیبی از Scala/Java/C++ با لایههای داده و کش گسترده CLI-Tools: وجود ندارد 12- xAI Applications: تمرکز محصول روی سرویسهای هوش مصنوعی, Python برای ML/LLM, C++ برای بخشهای پرفورمنس, موبایلها اگر اپ عمومی عرضه شود, Swift/Kotlin استاندارد هستند Front-End: عموماً JavaScript Back-End: Python با شتابدهی C++/CUDA برای مدلها CLI-Tools: وجود ندارد 13- Tesla Applications: اپهای موبایل رسمی با Swift و Kotlin/Java, داخل خودروها و فریمور با C/C++, ابزارهای داده/اتوماسیون با Python Front-End: عموماً JavaScript Back-End: ترکیبی از Python/Java/C++ بسته به دامنه (سفارشات، ناوبری، تلهمتری) CLI-Tools: وجود ندارد 14- SpaceX Applications: نرمافزارهای پرواز و کنترل C/C++, ابزارهای مهندسی و داده Python, موبایلها محدود و داخلی Front-End: عموماً JavaScript Back-End: Python/C++ برای سرویسهای داخلی مهندسی. CLI-Tools: وجود ندارد 15- NASA Applications: مأموریتها و سیستمهای نهفته با C/C++ و Ada در برخی پروژهها, ابزارهای علمی و داده با Python و Java Front-End: عموماً JavaScript Back-End: Python/Java برای انتشار دادهها و APIها, پروژههای قدیمیتر با زبانهای متنوع CLI-Tools: وجود ندارد من(ا)بع: Microsoft Copilot خیلی ممنونم دوستان که تا اینجا با من بودید امیدوارم که لذت برده باشید دوستان تا تاپیک های بعدی شما رو به خدای مهرابن و بزرگ میسپارم الله یارتون باشه! -
An Open-Source Real-Time Messanger with C++ & Boost:Asio
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
بله، حتما به فکر موارد بیشتری هم هستم براش، مثل همین مبحث UI، و ویس چت -
سخت ترین چیزی که میتونی توی آرساکیا به دست بیاری چیه؟
Integer پاسخی برای AliExpert ارسال کرد در موضوع : گفتگوی آزاد
من دهن باز کنم نصف سرور به فناست پس مخصوصا هلپر ها اوه اوه -
An Open-Source Real-Time Messanger with C++ & Boost:Asio
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
عشقید -
چرا باید با سی پلاس پلاس وب سایتم رو بسازم؟
Integer پاسخی برای Integer ارسال کرد در موضوع : برنامه نویسی
عشقید همتون- 4 پاسخ
-
- 1
-
-
به نام خالق یکتا که به حل کردن باگ های پروژه هامون کمک کرد (الله) سلامممممممممممممممممممممممممممم عرض میکنم خدمت یک یک شومممما دوستان عزیز امیدوارم حالتون خوب باشه این تاپیک مطمعنم جالب ترین آموزشی میشه که توی عمرتون دیدید میخوایم یاد بگیریم چطوری یک وب سایت رو بدونه HTML/CSS/JS بسازیم! فقط با سی پلاس پلاس بی مقدمه میرم سراغ کار های اصلی 1- روش قدیمی (ولی پرکاربرد بدون نیاز به یادگیری موارد بیشتر) روش CGI (Common Gateway Interface) توضیح این روش: در این روش وب سرور به محض ورود میاد و درخواست ها رو به فایل کامپایل شده ی .cpp (که فرمتش .cgi هستش) میده و خروجی ای که توی .cpp نوشتین رو نشون کاربر میده مذیت ها: نیازی به یادگیری فریم ورک های سی پلاس پلاس برای طراحی/برنامه نویسی وب ندارین - کنترل کامل روی خروجی معایب: هر درخواست یک پروسه جدید میسازه و ترافیک رو زیاد میکنه - مدیریت Session ها و Routing ها سرویس میکنه مناسب: پروژه های کوچیک و آموزشی آموزش: آپاچی/ان جین ایکس (Nginx)/لایت اسپید (روی لینوکس) رو نصب کنید پوشه ی جدید به اسم "cgi-bin" بسازید یک فایل C++ (.cpp) داخلش قرار بدید (وقتی که کد هارو نوشتید) با GNU GCC کامپایلش کنید به فایل .cgi (کد): gcc fileName.cpp -o fileName.cgi g++ fileName.cpp -o fileName.cgi توضیح: fileName.cpp: اسم فایل سی پلاس پلاس -o: مخفف شده ی -Output یعنی خروجی fileName.cgi: اسمی که میخواید خروجی عه .cgi داشته باشه آموزش: چیز هایی که باید قرار بدید توی فایل .cpp عه خودتون: // لایبرری های مورد نیاز عه خودتون #include <iostream> // باید باشه تا بتونیم خروجی رو بسازیم int main () { // مکان شروع برنامه cout << "Content-type: text/html\n\n"; // به مرورگر میگه که این یک فایل HTML هستش و باید خروجی HTML بدی cout << "<html>\n\t" << "<head>\n\t\t" << "<title>A course by JavadInteger</title>\n\t" << "</head>\n\t" << "<body>\n\t\t" << "<h1>Welcome!</h1>\n\t" << "</body>\n" << "</html>"; /* توضیح کد: میاد و اچ تی ام ال رو باز میکنه و میره خط بعدی و یک تب میزنه تگ هد رو باز میکنه و میره خط بعدی و دو تا تب میزنه تایتل رو میزاره و میره خط بعدی و یک تب میزنه هد رو میبنده و میره خط بعد و تب میزنه بادی باز میکنه میره خط بعد دو تا تب میزنه یک هدر شماره ی یک میزاره ول کام میگه میبنده هدر یک رو بادی رو میبنده اچ تی ام ال رو هم میبنده و تمام */ return 0; // حتما عه حتما عه حتما یادتون باشه که بزارید این رو! } این روش یک روش تقریبا منسوخ شدست و فقط توی آموزش ها استفاده میشه حالا برای اجرا کافیه برید به: http://localhost/cgi-bin/yourFile.cgi 2- روش مدرن با فریم ورک های تحت وب ایه سی پلاس پلاس 1- CppCMS - یکی از قویترین ها (از نظر من: رتبه #2) مذیت ها: فریم ورک قدرتمند و سریع عه تحت وب پشتیبانی ها: قالب ها, فریم ها, کش ها و i18n (Internationalization) (توضیح مختصر: i18n مخفف Internationalization هستش, i عه اول و n آخر و 18 کاراکتر حذف شده از وسط i و n, به معنی این هستش که مثلا من الان مینویسم Hello, اگه یه ایرانی اومدش نگه Hello, بگه "سلام") مشابه: فریم ورک ها و لایبرری های جاوااسکریپت مثال ساده: #include <cppcms/application.h> #include <cppcms/application_pool.h> #include <cppcms/service.h> class MyApp : public cppcms::application { public: MyApp(cppcms::service &srv) : cppcms::application(srv) {} void main (std::string url) { response().out() << "<pre>Hello From JavadInteger</pre><br />\n<p>CppCMS Tutorial</p>"; } }; int main (int argc, char** argv) { cppcms::service srv(argc, argv); srv.application_pool().mount(cppcms::application_factory<MyApp>()); srv.run(); } این واقعیتش اولین پروژه ای بودش که با سی پی پی سی ام اس نوشتم, خیلی باحال بود حس اولین خروجی 2- Crow - یکی دیگه از قویترین ها (از نظر من: #1) مذیت ها: سبک مناسب برای: Rest API ها و سرویس های سبک مشابه: Flask, FastAPI مثال ساده: #include "crow_all.h"; int main() { crow::SimpleApp App; CROW_ROUTE(app, "/") ([](){ return "Hello from JAVADInteGer"; }); app.port(8080).multithreaded().run(); } ایشون میان و چاپ میکنن "Hello From JAVADInteGer", یکی از بهترین فریم ورک ها برای شماهایی که دارید تازه وارد این حوزه میشید (با سی پلاس پلاس) 3- Drogon - سوپر قوی عه تمامشون! (#-0) مذیت ها: مدرن ترینشون, برای ساخت یک سایت کامل استفاده میشه! از صفر! پشتیبانی ها: ORM, بلادرنگ (WebSocket), پلاگین ها مشابه: فریم ورک های پیشرفته dJango, Rails, Laravel یا Symfony مثال: #include <drogon/drogon.h> int main () { drogon::app().registerHandler("/", [](const drogon::HttpRequestPtr&, (std::function<void (const drogon::HttpResponsePtr &)> callback { auto resp = drogon::HttpResponse::newHttpResponse(); resp->setBody("Hello From std::JavadInteger::drogon"); callback(resp); }).run(); } یک نمونه ی ساده از Drogon, ولی خب ساده ترینشون رو پایین تر اعلام کردم: 4- Drogon - اولترا مگا لجندری پرمیوم بای جواد اینتیجر (#-99999) متاسفیم... فقط اولترا مگا لجندری پرمیوم ها دسترسی به این مطلب رو دارن ولی شما سطحت خیلی کمه (نیو) اما در حد معرفی میتونیم کمکتون کنیم "اولترا مگا لجندری پرمیوم" که "UltraMegaLegendaryPremium++" هم شناخته میشود, یکی از فریم ورک هایی هستش که جواد اینتیجر (عه خودمم که ) ساخته برای راحت تر شدن همه این چرت و پرت ها, تقریبا همه ی کد ها توی دراگون و cppCMS و حتی Crow اظافی هستن, اما خب فریم ورکی که من ساختم (با Boost:Asio) خیلی ساده تر و پرکاربرد تر از این حرفاس, تازه کلی قابلیت های باحال هم داره, مثلا میتونین بک اند رو هم با ساده ترین روش ممکن بنویسید باهاش, برای اطلاعات بیشتر بهم پیام بدین تا واستون بفرستم, خیلی قابلیت های بیشتری هم داره البته مثلا MVC, Middleware, Routing System, Security, DB و... ممنونم که همراهم بودید تا آموزش های بعدی شما رو به خدای بزرگ میسپارم خدا یار و نگهدارتون باشه!