사용자에게 데이터베이스에 저장된 데이터를 입력 할 수있는 입력 필드가 있습니다. 몇 가지 용도로 사용자는 HTML을 사용할 수 있습니다.데이터베이스에 HTML을 저장하고 출력하는 모범 사례
값을 저장할 때 (html 포함) escape/encode하는 것이 가장 좋습니다. 또는 출력으로 인코딩하고 인코딩 할 수 있습니까?
편집이 : 그냥 대부분의 사람들이 텍스트를 인코딩하는 것은 DB에 그것은 탈출 항상 좋은이 article
사용자에게 데이터베이스에 저장된 데이터를 입력 할 수있는 입력 필드가 있습니다. 몇 가지 용도로 사용자는 HTML을 사용할 수 있습니다.데이터베이스에 HTML을 저장하고 출력하는 모범 사례
값을 저장할 때 (html 포함) escape/encode하는 것이 가장 좋습니다. 또는 출력으로 인코딩하고 인코딩 할 수 있습니까?
편집이 : 그냥 대부분의 사람들이 텍스트를 인코딩하는 것은 DB에 그것은 탈출 항상 좋은이 article
에 의해 설명 나쁜 생각입니다 저장되는 것을 동의하는 경우보고 싶어/인코딩 사용자 입력에 넣어 전에 그렇지 않으면 SQL 인젝션 (SQL DB를 사용하는 경우)에 시스템을 노출시킬 수 있습니다.
html 특정 문자를 이스케이프 처리하는 것이 일반적인 방법입니다. 당신은 Apache Commons Lang
간단한 예에서 StringEscapeUtils를 사용할 수 있습니다
String htmlStr = "<h1>Hi</h1>"
StringEscapeUtils.escapeHtml(htmlStr);
이것은 당신이 아직 시도 한 내용을 공유 할 수 있습니다 더 통관에 대한 <h1>Hi</h1>
DB에 인코딩 된 버전을 저장하는 것에 대한 우려는 이제 데이터를 변형 한 것입니다. 이 [article] (http://lukeplant.me.uk/blog/posts/why-escape-on-input-is-a-bad-idea/)은 왜 저장된 것을 변형시키는 것이 나쁜지에 대한 자세한 설명을 제공합니다. 데이터. – Glide
여러 가지 출력 미디어를 사용하는 경우 나쁘지는 않지만 문서의 인수를 고려해 볼 가치가 있습니다. – Santosh
내 앱에 출력 미디어가 여러 개있는 경우 기사의 주장에 동의합니까? – Glide
와 같은 문자열을 인코딩합니다. –
두 가지 문제가 있습니다. 첫 번째는 신뢰할 수없는 사용자 입력으로 인한 SQL 주입입니다. 두 번째는 콘텐츠를 표시 할 때의 XSS입니다. 두 가지 문제를 해결하는 답변을 기다리십시오. – jww