2010-03-01 2 views
8

사용자가 리치 텍스트 주석을 남길 수있게하고 싶습니다 (아마도 markdown을 사용). Reddit에 사용 된 라이브러리를 설치했지만 작년에 발생한 자바 스크립트 주입 공격에 대해 우려하고 있습니다. 특히 공격이 수행 된 방식에 대한 세부 사항이 명확하지 않기 때문에 더욱 그렇습니다. 코멘트 보안에 대해 여전히 염려해야합니까? reddit을 찍은 동일한 결함을 확인하기 위해 시스템을 통과 할 수있는 테스트 문자열이 있습니까?보안 파이썬 마크 다운 라이브러리

답변

4

Python-Markdown '표준'에는 다소 차이가 있지만 html 태그를 이스케이프 처리하는 '안전 모드'기능이 있습니다. 그것은 대부분의 모든 HTML 주입 공격에 대응하기에 충분해야합니다.

4

reddit는 지금 discount markdown library을 사용합니다.

+0

나는 순수 파이썬 환경 (구글 애플 리케이션 엔진)에서 일하고있어 그래서 나는 C 라이브러리를 사용할 수 있다고 생각하지 않는다. 위에서 언급 한 Scavenger 라이브러리를보고 있으며 reddit의 filters.py 및 markdown.py 코드를보고 있습니다. freewisdom 라이브러리는 다른 프로젝트에 드롭하기위한 의도가있는 반면, 분명히 reddit 코드가 reddit에서 작동하도록 의도했기 때문에 freewisdom 코드쪽으로 나를 기울여야합니다. 다른 한편으로는, 내가 왜 알고 있어야하는 공개적으로 이용 가능한 라이브러리에 취약점이 있습니까? – MichaelBlume

2

다른 답변은 Python-Markdown의 안전 모드를 언급하지만 현재는 사용되지 않습니다. 파이썬 마크 다운의 저자가 말을 인용되었습니다

"안전 모드"우리는 (이전 코드는 여전히 우리의 새로운 버전에서 작동) 역 비교를 위해 계속 사용할 가난한 이름을 선택했다. 정말 그게 은 마크 업 모드가 아닙니다. 즉, 원시 HTML을 허용하지 않기위한 방법 일 뿐이며 실제로 안전을 보장하지는 않습니다.

그들은 이제 마크 다운 출력을 소독하는 Bleach 같은 HTML 소독제를 사용하는 것이 좋습니다. mdx_bleach은 그 일을하는 Python-Markdown 확장입니다. 면책 조항 : 저는이 확장 프로그램의 저자입니다.

브라우저에서와 같은 방식으로 문서 조각을 구문 분석하기 위해 html5lib을 사용하기 때문에 BLEACH는 일반 표현식 기반 위생 도구보다 훨씬 알려지지 않은 공격에 매우 탄력적입니다.