사용자가 리치 텍스트 주석을 남길 수있게하고 싶습니다 (아마도 markdown을 사용). Reddit에 사용 된 라이브러리를 설치했지만 작년에 발생한 자바 스크립트 주입 공격에 대해 우려하고 있습니다. 특히 공격이 수행 된 방식에 대한 세부 사항이 명확하지 않기 때문에 더욱 그렇습니다. 코멘트 보안에 대해 여전히 염려해야합니까? reddit을 찍은 동일한 결함을 확인하기 위해 시스템을 통과 할 수있는 테스트 문자열이 있습니까?보안 파이썬 마크 다운 라이브러리
8
A
답변
4
Python-Markdown '표준'에는 다소 차이가 있지만 html 태그를 이스케이프 처리하는 '안전 모드'기능이 있습니다. 그것은 대부분의 모든 HTML 주입 공격에 대응하기에 충분해야합니다.
4
reddit는 지금 discount markdown library을 사용합니다.
2
다른 답변은 Python-Markdown의 안전 모드를 언급하지만 현재는 사용되지 않습니다. 파이썬 마크 다운의 저자가 말을 인용되었습니다
"안전 모드"우리는 (이전 코드는 여전히 우리의 새로운 버전에서 작동) 역 비교를 위해 계속 사용할 가난한 이름을 선택했다. 정말 그게 은 마크 업 모드가 아닙니다. 즉, 원시 HTML을 허용하지 않기위한 방법 일 뿐이며 실제로 안전을 보장하지는 않습니다.
그들은 이제 마크 다운 출력을 소독하는 Bleach 같은 HTML 소독제를 사용하는 것이 좋습니다. mdx_bleach은 그 일을하는 Python-Markdown 확장입니다. 면책 조항 : 저는이 확장 프로그램의 저자입니다.
브라우저에서와 같은 방식으로 문서 조각을 구문 분석하기 위해 html5lib을 사용하기 때문에 BLEACH는 일반 표현식 기반 위생 도구보다 훨씬 알려지지 않은 공격에 매우 탄력적입니다.
나는 순수 파이썬 환경 (구글 애플 리케이션 엔진)에서 일하고있어 그래서 나는 C 라이브러리를 사용할 수 있다고 생각하지 않는다. 위에서 언급 한 Scavenger 라이브러리를보고 있으며 reddit의 filters.py 및 markdown.py 코드를보고 있습니다. freewisdom 라이브러리는 다른 프로젝트에 드롭하기위한 의도가있는 반면, 분명히 reddit 코드가 reddit에서 작동하도록 의도했기 때문에 freewisdom 코드쪽으로 나를 기울여야합니다. 다른 한편으로는, 내가 왜 알고 있어야하는 공개적으로 이용 가능한 라이브러리에 취약점이 있습니까? – MichaelBlume