2010-12-29 5 views

답변

10

유효한 URL은 여전히 ​​공격 벡터를 포함 할 수 있습니다 아닌 XSS 공격입니다 위의 부여

<!--- No on CF9 ---> 
<cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123; DROP TABLE Products")#</cfoutput> 

<!--- Yes on CF9: hex encoded ';DROP TABLE Products' ---> 
<cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123%3B%20%44%52%4F%50%20%54%41%42%4C%45%20%50%72%6F%64%75%63%74%73")#</cfoutput> 

을하지만, 대신 공격에 열을 업데이트하기 위해 변경 될 수 있습니다.

the attacks I could find을 이메일로 확인하지 못하는 것으로 보입니다. 정수, 사회 보장 번호 (SSN), UUID를 등 그의 유일한 데이터 형식 자체가 '문자열'는 필드에, 그러나 ... there's a laundry list of documented potential attacks를 - 일반화로

, isValid()는 데이터 유형이 유한 한 경우 XSS 공격을 방지하는 데 도움이됩니다. 이 경우 isValid()은 도움이되지 않으며 대신 OWASP's AntiSamy은 DOM을 탐색하고 허용 목록에없는 항목을 제거하는 유용한 도구입니다.

Best regex to catch XSS (Cross-site Scripting) attack (in Java)?은 XSS 예방에 대한 일반적인 주제에 대해 많은 유용한 정보를 제공합니다.

그리고 마지막 포인트 사용 장황하기 :

<cfqueryparam cfsqltype="..." value="..."> 

to protect queries합니다.

업데이트

아니지만 적어도 마지막으로, OWASP XSS Cheat Sheet : 거기에 XSS를 방지하기 위해 입력을 처리하기위한 휴리스틱 최고의 세트.

관련 문제