2011-04-21 9 views
3

본인의 온라인 시스템 사용자가 자신의 .css 파일을 사용자별로 사용자별로 간단히 제어 할 수 있도록 허용하고 있습니다.CSS에서 XSS를 보호하려면 어떻게해야합니까?

상기 파일에서 잠재적 인 XSS 공격을 피하는 가장 좋은 방법은 무엇입니까?

완전히 자신을 보호 할 수 있습니까?

우리가 파일을 호스트 할 수 있고 분명히 스스로 점검 할 수도 있지만 사용자가 파일을 업데이트하는 것이 더 편리 할 것입니다.

+0

이 질문을 보니 어떻게 든 도움이 될 것입니다. http://stackoverflow.com/questions/1364302/how-to-preform-whitelist-based-css-filtering-in-php –

+0

IE에주의하십시오. 스타일 시트에서 코드 및 스타일을 실행할 수 있습니다. 그 외에도, 스타일 시트로 XSS를 어떻게 수행 할 수 있습니까 (묻는 것은 유감 스럽지만, 어떻게 끝났는지 모르겠습니다). – Blender

+0

나를 똑바로 세워 줘서 고마워. 거짓말을 퍼뜨려서 미안해. –

답변

2

CSS 허용 문제는 많은 영리한 공격 발생할 수 있습니다. CSS는 실제로 매우 위험 할 수 있습니다.

일부 CSS 표현식에서는 임의의 JavaScript를 실행할 수 있습니다. 이 블랙리스트에 의해 방지하기가 어렵습니다, 그래서 화이트리스트를 권 해드립니다.

또한 다른 사용자가 페이지를 변경하여 다른 사이트 또는 다른 페이지로 가장하거나 페이지의 다른 요소를 현명하게 지정하는 CSS 파일을 만들 수 있습니다. 누군가 자신의 로그인 양식을 실제 위치 위에 올려 놓을 수 있었다고 상상해보십시오. 그런 다음 로그인 요청을 가로 챌 수 있습니다. 사이트 설정 방법에 따라 이것이 가능할 수도 있고 그렇지 않을 수도 있습니다. 그러나 미리 경고하십시오! 일부는 이것을 clickjacking으로 알고 있습니다.

2

먼저 다른 사람들이 말한 것처럼 신중을 기하시기 바랍니다. 그 외에도 파일에서 기대할 수있는 유효한 입력을 화이트리스트에 표시하십시오. 선택한 프레임 워크에 대한 라이브러리를 찾을 수 있는지 (여기에 언급하지 않았 음) CSS 구조 준수를위한 문자열을 확인할 수 있는지 확인하십시오.

다른 고려해야 할 것은 특정 CSS 속성을 매개 변수화하고 사용자가 구성 할 수 있도록 허용하는 것입니다 (예 : 색상, 글꼴 등). 자신의 악의적 인 CSS를 임의로 생성 할 수있는 능력을 빼앗을 때 위험을 크게 줄일 수 있습니다. 반대로 자신의 결백 한 CSS를 만들 수 있습니다.

원래 질문에 대해 "완전히 자신을 완전히 보호 할 수 있습니까? ", 그건 쉽지 - 안돼!

관련 문제