문제

WebApp 사용자가 GUI의 모양을 수정하기 위해 텍스트 필드를 통해 사용자 정의 CSS를 저장할 수 있도록하고 싶습니다.

나는 악의적 인 CSS 해킹이 있다고 생각합니다. 무엇에 대해 조심해야합니까?

도움이 되었습니까?

해결책

하나의 솔루션은 일부 편집기를 통해 사용자 옵션을 제공하여 다양한 요소의 색상/크기를 선택할 수 있습니다. 그런 다음 사용자가 제공 한 옵션에 따라 CSS를 직접 생성하십시오.

이렇게하면 비표준 CSS 또는 저장하기에 사용하지 않으려는 CSS를 방지합니다.

다른 팁

CSS 표현식 (즉, IE에서만 평가 된). 이들은 CSS 파일에서 JavaScript를 허용하므로

property: expression(...);

또는 단순히 "허용되지 않는"오류를 던지십시오.

그러나 CSS를 처음에 넣은 사용자에게 정확히 CSS를 전달하면 자신이 XSS 취약점을 소개한다면 책임을집니다.

다른 경우 : Zeus의 솔루션을 사용하십시오.

사용자가 사이트에 맞춤형 CS를 직접 포함시킬 수 있도록 허용하는 경우 해커가이를 인수하도록 요청합니다. CSS를 아는 사람들만이이를 수행 할 수 있기 때문에 실제로 테마 시스템을 덜 사용할 수 없게 만들고 있습니다. 귀하의 사이트가 웹 기반 프로그래머를위한 사이트가 아니라면 사용자가 대신 선택할 수있는 일련의 테마를 만드는 것이 가장 좋습니다.

또한 사용자가 CSS를 통해 직접 사용자 인터페이스를 통해 페이지의 특정 스타일을 변경할 수있는 사이트에서 도구 세트를 만들 수도 있습니다. 이렇게하면 더 많은 사용자가 페이지를보다 유연하게 스타일링 할 수 있지만 CMS를 사용하지 않는 한 일반적으로 더 많은 개발 시간 비용이 발생하며 특정 CMS는 코어 나 플러그인 에서이 기능을 쉽게 허용합니다.

도움이 되었기를 바랍니다.

다른 사람들 중에서도 유효한 CSS인지 확인하십시오. http://jigsaw.w3.org/css-validator/

Zeus의 답변을 받으려고하지만 CSS 파서를 사용하고 (검색, 다양한 질문이 있음) 승인 된 속성 목록에 대한 모든 입력을 확인할 수 있습니다 (승인 된 속성 목록).color, background, 등).

사용자가 다른 사용자 중 하나가 아니라 자신의 CS를 수정할 수 있다면 위험은 무엇입니까? CSS는 그들에게만 제공 될 것이므로 최악의 경우 스스로 해킹 할 수 있을까요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top