Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

template1 is a function that takes in a parameter evil (with a SanitisedString type that wraps a regular str) and returns the fully expanded str. It is implemented by just returning an f-string equivalent to the t-string in your example. Same with template2.

Using the SanitisedString type forces the user to explicitly call a sanitiser function that returns a SanitisedString and prevents them from passing in an unsanitised str.



You're just handing off responsibility for sanitization to the user instead of the library author.

With t-strings the rendering function is responsible for sanitization, and users can pass unrendered templates to it.

With f-strings there's no concept of an unrendered template, it just immediately becomes a string. Whoever is creating the template therefore has to be careful what they put in it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: