2017-01-12 1 views
1

이 질문에 대한 답변은 모두 오래된 것입니다. SO에서 2016+ 이상을 찾을 수 없습니다. HTML5의 contenteditable=true 속성의 보안은 유지됩니까? 나는 그것이 많이 사용되는 것을 보지 못한다. 그것을 사용하려면 무엇을 안전하게해야합니까?HTML5 속성 contenteditable은 (는) 안전한가요?

편집 : 이전 답변 이후 , 그것은 현재 널리 받아 들여처럼 보이는, http://caniuse.com/#search=contenteditable

편집 : 보안 말할 때, 내 말은 가 어떻게 어떤 사람 유형은 안전에 확인합니까? 어떤 종류의 문제를 찾고 있습니까? XSS? 다른 것?

편집 : 편집 한 콘텐츠를 서버로 보내고 있습니다. 이미 어떤 입력 요소에 대해서도하지 않을 HTML5 속성에 대해 다른 점이 있습니까?

답변

1

처음에는 모든 브라우저에서 지원되지는 않습니다. 둘째, 보안에 관한 한, 콘텐츠 편집을 가능하게하는 클라이언트 측 속성 일뿐입니다. 예를 들어, 콘솔을 열고 contenteditble="true을 바디 태그에 추가하면 웹 페이지의 모든 콘텐츠와 요소를 바로 삭제할 수 있습니다. 영향을 미치지 않으므로 사이트를 손상시키지 않습니다. 서버 쪽.하지만 당신의 유스 케이스에 달려있다. 어떻게 생각 했는가? 어떤 형태로든 폼 입력보다 더 이상 위험하지 않다.

+1

오래된 대답부터, 현재 널리 받아 들여지고있는 것처럼 보입니다. http://caniuse.com/#search=contenteditable – johnny

3

contenteditable 속성은 키워드를 가진 열거 형 속성이다. 빈 문자열 및 참이며, 빈 문자열과 참 키워드는 실제 상태에 매핑됩니다. 거짓 키워드는 거짓 상태에 매핑됩니다. 또한 세 번째 상태 인 상속 상태가 누락 된 값입니다 기본값이며 유효하지 않은 기본값입니다.

contenteditable="" or contenteditable="true" 

요소를 편집 할 수 있음을 나타냅니다.

contenteditable="false" 

요소를 편집 할 수 없음을 나타냅니다.

contenteditable="inherit" 

해당 직접 상위 요소를 편집 할 수있는 경우 요소를 편집 할 수 있음을 나타냅니다. 이것은 기본값입니다.

요소에 contenteditable을 추가하면 브라우저에서 해당 요소를 편집 가능하게 만듭니다. 또한 해당 요소의 모든 하위 항목은 하위 요소가 명시 적으로 contenteditable = "false"가 아닌 한 편집 가능하게됩니다.

+0

나는 사람이 거기에 넣는 것과 같이 안전하다는 것을 묻습니다. – johnny

+0

사용자가 입력을 편집 할 수 있으면 이것을 사용해야합니다. 클라이언트 측에서 완전히 그것은 브라우저 측에서 그것을 의미합니다. 물론 서버 데이터베이스로 보내지는 경우 값을 보호해야합니다. –

+0

그것이 내가 묻고있는 것입니다. 정규 입력 요소에 적용되지 않을 수도있는이 HTML5 속성을 사용하는 것에 대한 상속 된 특별한 것이 있습니까? * 서버로 보냅니다. – johnny