2011-12-07 2 views
9

Python-Markdown에는 원시 HTML의 이스케이프 처리와 같은 기능이 포함되어 있습니다.이 기능은 신뢰할 수없는 입력에 대해 안전성을 높이기 위해 분명히 의도 된 것으로, 일반적으로 Markdown은 여기 에서처럼 사용자 입력을 렌더링하는 데 일반적으로 사용됩니다.신뢰할 수없는 입력에 python-markdown을 사용할 수 있습니까?

하지만이 구현은 실제로 신뢰할 수 있습니까? 여기에있는 누군가가 임의적 인 입력으로 실행하는 것이 안전하다고 결정하기 위해 그것을 연구 했습니까?

예를 들어 Markdown in Django XSS safeSecure Python Markdown Library이 있지만 '안전한'모드는 정말 안전한가요?

+1

그렇지 않다고 생각할만한 이유가 있습니까? 장고의 안전 모드는 꽤 성숙한 프레임 워크이고 많은 사람들이 사용하기 때문에 올바르게 공급하면 완벽하게 작동합니다. 확실한 보안 위험이있는 경우 사람들은 지금까지이를 발견했을 것입니다. – Codahk

+4

안전합니다. 하지만 실제로 안전한지 여부는 "매우 안전함"에 대한 귀하의 정의에 달려 있습니다 –

답변

5

누구든지 알고있는 한 Python Markdown 라이브러리는 안전합니다. if you use it properly. 안전하게 사용하는 방법에 대한 자세한 내용은 링크를 참조하십시오. 그러나 짧은 버전은 safe_mode을 설정하고 enable_attributes=False을 설정하는 최신 버전을 사용하는 것이 중요합니다.

업데이트 : safe_mode 업데이트는 이제 보안 문제로 인해 사용되지 않습니다. https://pythonhosted.org/Markdown/reference.html#safe_mode을 참조하십시오. 대신 HTML Purifier와 같은 별도의 HTML 삭제기를 사용하십시오.

+0

safe_mode는 더 이상 사용되지 않습니다 https://pythonhosted.org/Markdown/reference.html#safe_mode –

+0

@RichardJones, 업데이트 해 주셔서 감사합니다! 내 대답을 업데이트했습니다. –

관련 문제