التحويل التلقائي ومرشّح safe
حافظ على الأمان من XSS ولا تتجاوزه إلا عند التأكد.
التحويل التلقائي ومرشّح safe درس مجاني في Flask Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Flask Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Flask Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
The Danger of Raw HTML
If you print user text straight into a page, a sneaky input could inject scripts. This attack is called XSS, and Flask defends against it.
Autoescaping Is On
By default Jinja2 turns on autoescaping for HTML templates. Dangerous characters get neutralized before they reach the browser.
What Escaping Does
Escaping converts characters like the less-than sign into safe entities. The browser then shows them as text, never as live markup.
<b>hi</b> becomes <b>hi</b>Why Text Stays Text
Because tags are escaped, a comment like a fake bold tag shows up as plain text. The page renders it literally instead of running it.
When You Trust the HTML
Sometimes you truly want HTML rendered, like a value you built yourself. For that you can opt out with the safe filter.
{{ trusted_html|safe }}How safe Works
The safe filter tells Jinja2 this value is already trusted, so do not escape it. The markup then renders as real HTML.
Only on Trusted Data
Use safe only on content you control. Marking user input safe reopens the very XSS hole autoescaping was closing.
Marking Safe in Python
You can also flag trusted HTML in your view with Markup. A Markup string skips escaping automatically when rendered.
from markupsafe import Markup
snippet = Markup('<b>Hi</b>')Disabling Escaping Locally
To skip escaping for a whole region, wrap it in an autoescape block set to false. Use this rarely and with great care.
{% autoescape false %}{{ html }}{% endautoescape %}The escape Filter
You can also force escaping with the escape filter, or its short alias e. It is handy when autoescaping is off for a block.
{{ value|e }}Safe by Default
The big idea: Flask is secure out of the box. You only relax escaping deliberately, never by accident, which keeps users protected.
Quick Check
You print untrusted user input in a template. What does autoescaping do with HTML tags in it?
Recap
You learned Flask autoescapes output to block XSS, and that the safe filter opts out only for HTML you fully trust. Stay secure! 🔒
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «التحويل التلقائي ومرشّح safe» مجاني؟
نعم — نص درس «التحويل التلقائي ومرشّح safe» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Flask Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Flask Academy 4 دروس في المجموع.
ماذا ستتعلم في «التحويل التلقائي ومرشّح safe»؟
حافظ على الأمان من XSS ولا تتجاوزه إلا عند التأكد. تتمرن على Flask Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Flask Academy؟
لا تُشترط خبرة سابقة. Flask Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التحويل التلقائي ومرشّح safe»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Flask Academy هذا؟
نعم. كل درس في Flask Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- render_template ومجلد templates
- تمرير البيانات إلى قالب
- الحلقات والشروط في Jinja2
- التحويل التلقائي ومرشّح safe