Same reply, two pages: where does the text become code?

Type a message once. Both of this week's real chatbots answer it side by side: the branch their code took, the exact bytes they put in the page, and what the browser builds from those bytes. Nothing is executed here; the browser's parser reads the bytes in an inert document and this page reports what would run.

Try it in the lab:
and on the guarded bot:

vulnerable_chatbot.py :8082

What ran

Bytes in the page

What the browser builds

Text the reader sees

guarded_chatbot.py :8083

What ran

Bytes in the page

What the browser builds

Text the reader sees