2014-03-30 4 views
1

html을 살리기 위해 lxml.html.clean을 사용하고 있습니다. 그것은 모든 태그에서 '스타일'속성을 제거하는 것으로 보이며, 제 목적을 위해 스타일 속성을 제거하지 않아도됩니다.태그에서 '스타일'을 제거하기위한 lxml.htm.clean의 목적

허용을 시작하기 전에 html 살생을 수행 할 때 스타일 속성을 제거하지 말아야하는 보안 관련 사항이 있는지 이해하고 싶습니다.

전문가가이 문제에 대한 통찰력을 높이 평가합니다.

(내 응용 프로그램을 사용하면 최종 사용자가 백엔드 데이터베이스에 저장된 HTML을 만들어 페이지에 렌더링 할 수 있습니다. 위의 'clean'은 위의 html에서 악의적 인 html (예 : javascript 등)을 제거하는 데 효과적입니다. 이후 렌더링을 위해 저장됩니다). feedparser HTML sanitisation web site

- '스타일' 'safe_attrs'가

+0

저에게 보이는 것은 [선택 해제 할 수있는 옵션] (http://lxml.de/api/lxml.html.clean.Cleaner-class.html)이거나 사용중인 것과 다릅니다. ? –

+0

고마워요 2 비트! 그러나 기본적으로 '스타일'속성이 제거 된 이유는 무엇입니까?이 속성을 사용하는 악성 코드의 보안 문제가 있습니까? (나는 명확하게하기 위해 질문을 향상시킬 것이다) – user1055761

+0

어쩌면 다른 누군가가 그것에 대해 이야기 할 것이다. 내 것을 위해서. 2 비트 (꿀꺽 꿀꺽 마시는 것), 나는 그것이 아마도 불필요한 것이 아니라고 말할 것입니다. (그것은 HTML 속성으로 얼마나 많은 것을 할 수 있습니까?) 많은 JavaScript 라이브러리, 브라우저 확장 등이이 속성에 추가 될 수 있습니다. –

답변

1
(.이 보행자 질문이있는 경우 또한, 미안 해요/위생 및 관련 보안 측면을 HTML로 새로운 오전) 목록에 표시되지 않습니다

정상적인 상황에서 스타일은 보안 위험 자체가 아닙니다. style="display:none"

  • forminput 요소는 사용자가 무의식적으로 추가 데이터를 제출하는 원인이 일부 브라우저에서 데이터를 자동으로 채울 수 있습니다 그러나, 악의적 인 스타일이 책임이 될 수있는 몇 가지 상황이 있습니다.
  • style="display:block" 또는 다른 display 스타일은 inline 또는 다른 스타일을 예상하는 레이아웃을 손상시킬 수 있습니다.
  • 레이아웃 엔진이 특정 비주얼 스타일을 유지하려는 경우 style 속성의 스타일 정보를 허용하면 작성자/포스터에 스타일 선택을 위해 들여 쓰기 한 것보다 더 많은 위도가 부여됩니다. (2000pt 글꼴을 원한다고 결정하면 어떻게됩니까?)
  • 스타일 속성은 @import 메카닉을 통해 다른 스타일을로드하거나 background 및 유사한 속성을 통해 URL을로드 할 수 있습니다. 새 니타 이저가 CSS 코드를 위생적으로 위임하지 않는다면 이는 주사에 대한 잠재적 인 벡터가 될 것입니다.

sanatize하려는 유일한 이유는 소스가 신뢰할 수 없거나 안전하지 않을 수 있기 때문입니다. 소스를 자체 스타일로 설정하는 것은 바람직하지 않다고 가정합니다.

+0

좋습니다. 뉘앙스를 포맷팅하는 것은 문제가 아니지만 '@'메 커닉은 '스타일'속성을 허용하면서이 기사에서 css를 사용자 정의하는 방법을 읽고 이해해야 할 필요가있는 것입니다. 감사 ! – user1055761