إبعاد الأسرار عن الكود
خزّن بيانات الاعتماد بأمان، لا كنص عادي.
إبعاد الأسرار عن الكود درس مجاني في Arduino & IoT Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Arduino & IoT Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Arduino & IoT Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
What Counts as a Secret
WiFi passwords, API tokens, and private keys are all secrets. Anything that grants access must never sit in plain sight inside your sketch. 🔑
The Danger of Plaintext Keys
Flash memory can be read back over the wire. A plaintext key in your code is one chip dump away from being copied by anyone.
String apiKey = "AKIA12345SECRET"; // visible to anyone who reads the flashWhy Git Makes It Worse
Commit a secret once and it lives in your history forever. Even after you delete it, the old commit still holds the exposed key.
Use a Separate Header
Put credentials in a small file like secrets.h kept out of version control. This secrets header keeps keys off GitHub while your sketch stays shareable.
#include "secrets.h" // holds WIFI_SSID and WIFI_PASS, never committedIgnore It in Git
Add your secrets file to .gitignore so it can never be committed by accident. This single line prevents most real-world key leaks.
# .gitignore
secrets.hProvision at Setup Time
Instead of baking keys in, enter them once when the device first boots. Provisioning via a config page keeps secrets off your source entirely.
Store in NVS or EEPROM
The ESP32 offers NVS, a key-value store in flash for runtime secrets. You write the token once and read it back on every boot.
preferences.begin("net", false);
preferences.putString("token", userToken);One Device, One Key
Give each unit its own credentials, never a shared master key. With per-device keys, one stolen device can be revoked without touching the rest.
Rotate and Revoke
Plan to change keys on a schedule and kill leaked ones fast. Rotation limits how long any single stolen secret stays useful.
Least Privilege
Give each token only the access it truly needs. Least privilege means a leaked device key can read its own topic, not your whole account.
Scan Before You Push
Tools can catch a key before it reaches a remote repo. A secret scanner in your workflow blocks accidental leaks before they happen.
Quick Check
One of these keeps a key off your public repo.
Recap
Never bake secrets into code. Use a gitignored header, provision at setup, store in NVS, and keep per-device keys you can rotate. 🔐
الأسئلة الشائعة
هل درس «إبعاد الأسرار عن الكود» مجاني؟
نعم — نص درس «إبعاد الأسرار عن الكود» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Arduino & IoT Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Arduino & IoT Academy 4 دروس في المجموع.
ماذا ستتعلم في «إبعاد الأسرار عن الكود»؟
خزّن بيانات الاعتماد بأمان، لا كنص عادي. تتمرن على Arduino & IoT Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Arduino & IoT Academy؟
لا تُشترط خبرة سابقة. Arduino & IoT Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «إبعاد الأسرار عن الكود»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Arduino & IoT Academy هذا؟
نعم. كل درس في Arduino & IoT Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- منافذ الهجوم الشائعة في إنترنت الأشياء
- إبعاد الأسرار عن الكود
- التشفير باستخدام TLS والتحقق من الشهادات
- توقيع البرنامج الثابت وتأمينه