NimaCodez | خفنیجات با نیما
527 subscribers
39 photos
3 videos
27 links
مسئله های یک دولوپر کنجکاو و نیمچه Geek.

Go Deep, Learn Deep, Ask Deep.

A nerd without *shiny* grades.
Download Telegram
⁉️ دیتابیس چیه و چه کاربرد هایی داره؟

تو مباحث نرم‌افزار و علوم رایانه دیتابیس یا پایگاه داده به یک مجموعه منظم از اطلاعات گفته میشه که در جدول هایی ذخیره و طبقه بندی میشن (تصویر 2#). این جدول ها، ردیف ها و ستون هایی دارن که داخلشون مقادیر مربوط به اون ستون و ردیف قرار میگیره.

⭐️ دیتابیس از این جهت برامون مهمه که اطلاعات مارو پایدار میکنه¹ و برامون نگه‌داریش میکنه تا هروقت که نیاز داشتیم، اطلاعات مورد نیاز رو ازش درخواست کنیم. یا حتی توش ثبت کنیم یا برای مقاصد تحلیلی و Analysis ازش استفاده کنیم.

به فرایندِ درخواست اطلاعات از دیتابیس میگیم «کوئری» (Query). کوئری ها دستوراتی هستن که برامون اطلاعات رو جمع‌آوری میکنن و برمیگردونن.

🧐 برای مثال فرض کنید من تو جدولم میخوام افرادی رو پیدا کنم که بزرگتر از ۱۸ سال هستن تا احراز هویتشون رو کامل کنم. بدین شکل به دیتابیسم کوئری میزنم:

SELECT
*
FROM
public.users
WHERE
users.age >= 18;

- نتیجه این کوئری عکس #3 (همونطور که میبینید دیگه Nima برنگشته چون سنش زیر ۱۸ بود)

🔥 ترجمه‌ی این کوئری میشه:
انتخاب کن همه رو (درواقع علامت * معنی همه میده) از جدول users به شرط اینکه پراپرتی ( یا همون ویژگیِ ) سن کاربر بزرگتر مساوی ۱۸ باشه.

*این یکی از ساده ترین کوئری های ممکنه و صرفا جهت آشنایی شما با مفهوم کوئری آورده شده.

✔️ این کوئری با زبانی به اسم «SQL» زده میشه. ما چند نوع دیتابیس داریم. دیتابیس های SQL و دیتابیس های NoSQL.

دیتابیس های SQL برای ذخیره سازی داده از همین ستون ها و جدول ها استفاده میکنن. برای کوئری زدن هم از همون زبان SQL استفاده میکنن.

😎 اما دیتابیس های NoSQL میتونن دیتاتایپ ویژه خودشون رو داشته باشن. مثلا دیتابیس MongoDB، داده هارو تو اسنادی به اسم داکیومنت (Document) ذخیره میکنه.
زبان کوئریش هم SQL نیست و زبان کوئری خودش رو داره. خودشون که بهش نام «MQL» رو دادن؛ مخففِ «MongoDB Query Language»

1️⃣ از دیتابیس های SQL ای معروف میشه به: MySQl, SQLite, PostgreSQL اشاره کرد.

2️⃣ از دیتابیس های NoSQL ای معروف میشه به: MongoDB, ScyllaDB, Redis, Couchbase و.. اشاره کرد.

¹ اصطلاح علمی و کامپیوتریِ این پایدار کردن دیتا «Persist» هست.
کنجکاو بمونید.

#database #computer_science #sql #query #mongodb
🔗 Reference

🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27❤‍🔥53👍3🆒1
⁉️ SQL Injection چیه و راهای جلوگیری ازش چیا هستن؟

SQL Injection یکی از تکنینک های تزریق کده که بخاطر سو استفاده از آسیب‌پذیری های یک نرم‌افزار در حین ورود اطلاعات به یه فرم یا فیلد اتفاق میفته. مثلا یک فرم جلوی کاربر هست و ازش خواسته شده که سنش رو وارد کنه؛ ولی اون میتونه داخلش دستورات SQL مخربی بنویسه که مثلا کل جدول users شمارو حذف کنه.

🔥 حالا چطور باید از این اتفاق جلوگیری کرد؟

1️⃣ استفاده از ORM ها:‌ ORM ها بخش زیادی از حملات SQL Injection رو با روشی که بهش میگن parameterized queries دفع میکنن و از برناممون محافظت میکنن.

2️⃣ اعتبارسنجی ورودی ها: باید یک سری اعتبارسنجی روی ورودی های کاربر هم از سمت فرانت‌اند و هم از سمت‌ بک‌اند صورت بگیره تا حدالامکان هیچ دیتای مشکوک و مخربی سمت بک‌اند وارد نشه.

3️⃣ استفاده از میدلور های امنیتی: استفاده کردن از میدلورهایی مثل helmet و csurf.

4️⃣ آپدیت نگه داشتن کتابخونه ها: همیشه پیگیر آپدیت هایی که برای پکیج های مهم برنامتون منتشر میشه باشید و اگر مشکل امنیتی‌ای فیکس شده حتما بعد از بررسی های لازم اون پکیج خاص رو آپدیت کنید تا از مشکلات احتمالی جلوگیری کنید.

کنجکاو بمونید.
#backend #nodejs #sqlinjection #sql #security #tips

🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥17👍82🆒1