0Pricing
Flask Academy · บทเรียน

การหลีกอักขระอัตโนมัติและตัวกรอง safe

รักษาความปลอดภัยจาก XSS และปิดการป้องกันเฉพาะเมื่อแน่ใจ

การหลีกอักขระอัตโนมัติและตัวกรอง safe เป็นบทเรียน Flask Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 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  &lt;b&gt;hi&lt;/b&gt;

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! 🔒

คำถามที่พบบ่อย

บทเรียน “การหลีกอักขระอัตโนมัติและตัวกรอง safe” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การหลีกอักขระอัตโนมัติและตัวกรอง safe” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Flask Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Flask Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การหลีกอักขระอัตโนมัติและตัวกรอง safe”

รักษาความปลอดภัยจาก XSS และปิดการป้องกันเฉพาะเมื่อแน่ใจ คุณปฏิบัติ Flask Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Flask Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Flask Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การหลีกอักขระอัตโนมัติและตัวกรอง safe” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Flask Academy นี้ได้ไหม

ได้ บทเรียน Flask Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. render_template และโฟลเดอร์ templates
  2. ส่งข้อมูลเข้าเทมเพลต
  3. ลูปและเงื่อนไขของ Jinja2
  4. การหลีกอักขระอัตโนมัติและตัวกรอง safe
← กลับไปที่ Flask Academy