التحقق من الإدخال لمنع الحقن
ارفض الحمولات الضارة عند الحافة.
التحقق من الإدخال لمنع الحقن درس مجاني في Flask Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Flask Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Flask Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Never Trust Input
Every value a client sends could be hostile. Treating all input as untrusted is the mindset that prevents most attacks.
What Injection Means
Injection happens when user input is treated as code or a command. The attacker smuggles instructions into a query or shell.
SQL Injection in One Line
Pasting input straight into SQL is the classic mistake. A crafted value can rewrite your query and dump the whole table.
db.execute("SELECT * FROM users WHERE name = '" + name + "'")Use Parameterized Queries
The fix is to pass values as parameters, never string concatenation. The driver then escapes them safely for you.
db.execute("SELECT * FROM users WHERE name = ?", (name,))The ORM Helps
With SQLAlchemy you use filter_by and bound values, so queries are parameterized by default and injection is far harder.
User.query.filter_by(name=name).first()Validate Shape and Type
Check that input matches what you expect before using it. Confirm the type and range so a string never sneaks in where a number belongs.
age = request.args.get("age", type=int)Allowlist Over Blocklist
Listing the few values you accept beats chasing every bad one. An allowlist rejects anything you did not explicitly permit.
Validate with a Schema
A schema library like Marshmallow checks fields for you. It raises a ValidationError when a payload is the wrong shape.
data = UserSchema().load(request.get_json())Escape Output for XSS
Injection also lands in HTML. Jinja2 autoescaping turns user text into safe characters so scripts cannot run on the page.
Beware the safe Filter
Marking content with the safe filter disables escaping. Only do it for text you fully trust, never raw user input.
Reject Early at the Edge
Validate the moment data arrives, before it touches your logic. Failing fast with a 400 keeps bad input from spreading.
Quick Check
Choose the technique that stops SQL injection.
Recap
You learned to distrust input, stop SQL injection with parameterized queries, validate with schemas, allowlist values, and escape output. Solid security work!
الأسئلة الشائعة
هل درس «التحقق من الإدخال لمنع الحقن» مجاني؟
نعم — نص درس «التحقق من الإدخال لمنع الحقن» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Flask Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Flask Academy 4 دروس في المجموع.
ماذا ستتعلم في «التحقق من الإدخال لمنع الحقن»؟
ارفض الحمولات الضارة عند الحافة. تتمرن على Flask Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Flask Academy؟
لا تُشترط خبرة سابقة. Flask Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التحقق من الإدخال لمنع الحقن»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Flask Academy هذا؟
نعم. كل درس في Flask Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تقييد الطلبات باستخدام Flask-Limiter
- ضبط CORS لعملاء المتصفح
- ترويسات الأمان وHTTPS
- التحقق من الإدخال لمنع الحقن