2010-08-05 7 views
2

데이터베이스에서 양식 변수를 채우는 중입니다.양식 변수 및 큰 따옴표

<input name="width" value="3""> 

Q : 필드 값은 3인치은 "3로에서 따옴표가있는 경우, 다음 HTML 소스는 다음과 같습니다? 내가 따옴표를 포함하는 필드를 처리 할 방법

내가 먼저는 CFQUERYPARAM 문제라고 생각하지만, 그것은 html로 문제입니다 밝혀졌습니다.

+0

(Pete Freitag's cfunited presentation slides에서) 확실히 cfqueryparam은 큰 따옴표를 제거하지 않을 것입니다 - 입력 된 데이터를 살균하려고 시도하는 다른 것이있을 것입니다. 문제를 나타내는 고립 된 코드 샘플을 생성 할 수 있습니까? –

+0

문제를 복제하기위한 샘플을 설정하겠습니다. –

+0

큰 따옴표를 저장하고 있지만 양식 변수를 채울 때 html 소스는 다음과 같이 나타납니다. 이 예제에서 값은 3입니다. 인치 –

답변

9

값을 표시 할 때 HtmlEditFormat을 사용하십시오. 이처럼

:도있다

<input name="width" value="#HtmlEditFormat(Form.Width)#" /> 


:

XML 출력

XmlFormat;
JsStringFormat (JavaScript 출력용); URL 콘텐츠의 경우
UrlEncodedFormat 더 완전한/헤비급 물건

, 당신은 OWASP's ESAPI 고려할 수 - CF에서 사용하고 제공 할 수있는 Java 보안 API를 다음

Context  Method 
-------  ------ 
HTML   esapi.encodeForHTML(variable) 
HTML Attribute esapi.encodeForHTMLAttribute(variable) 
JavaScript  esapi.encodeForJavaScript(variable) 
CSS   esapi.encodeForCSS(variable) 
URL   esapi.encodeForURL(variable) 

+0

D' oh! 나는 올해 CFUnited에 갔어야 했어! –

2

나는 그것이 아마도 브라우저 생각, 당신은 다음이 제대로 통과해야 당신의 HTML에 "를 사용하여 견적을 인코딩 할 필요가있다.

+0

내가 말하는 내용 : & quot;에 데이터베이스가 들어 갈까요? –

+1

이미 이것을 처리하는 내장 함수를 사용하는 것이 더 낫습니다. 자세한 내용은 내 대답을 참조하십시오. –

+0

ㅎ, 방금 Pete라는 것을 알았습니다. 우연히도 저는 최근에 귀하의 최근 블로그 항목에 링크했습니다. :) 약간의 접선이지만, 이것을 알고 계십니까? http://www.owasp.org/index.php/ESAPI_ColdFusion_CFML_Readme - Jason Dean과 Bill Shelton에게 ESAPI를위한 더 친숙한 CF 인터페이스를 제공하는 것이 좋을지 모릅니다. –

관련 문제