템플릿 주석을 작성하는 방법은 2가지 방법이 있다.
1번째는 한줄 주석 2번째는 여러줄 주석
- 한줄 주석
{# Hello #}world
{# {% if foo %}bar {% else %} #}
- 여러줄 주석
{% comment "note" %}
<p>Commented out text here</p>
{% endcomment %}
- HTML 이스케이프
템플릿 코드를 렌더링하여 HTML 텍스트를 만들 때, 템플릿 변수에 HTML 태그가 들어 있는 경우에 그대로 렌더링하면 원하는 결과가 나오지 않을 수 있다. 그리고 이점을 이용하여 XSS 공격이 이루어진다.
장고는 자동 이스케이프 기능을 제공하고 있다.
- < -> <
- > -> >
- ' (single quote) -> '
- " (double quote) -> "
- & -> &
그렇기 때문에 자동 이스케이프 기능을 비활성화 할 수 있는 2가지 방법이 있다.
- safe 필더를 이용
This will not be escaped: {{ data|safe }}
safe 필터는 템플릿 변수에만 영향을 미친다.
- {% autoescape %} 태그를 이용
{% autoescape off %}
Hello {{ name }}
{% endautoescape %}
autoescape 태그 영역안에서는 자동 이스케이프 기능을 비활성화 한다.
추가적으로 필터의 인자에 사용되는 스프링 리터럴에는 자동 이스케이프 기능이 적용되지 않는다.
출처: 한빛미디어, Django로 배우는 쉽고 빠른 웹 개발 파이썬 웹 프로그래밍
'Django' 카테고리의 다른 글
| 14. 폼 클래스 (0) | 2021.04.08 |
|---|---|
| 13. 템플릿 상속 (0) | 2021.04.08 |
| 11. Template Tag(템플릿 태그) (0) | 2021.04.08 |
| 10. Template 구성 - 파일 구조, 템플릿 필터 (0) | 2021.04.08 |
| 9. View 구성 - 함수형 뷰 구성 (0) | 2021.04.08 |